只使用php从phpmyadmin表中获取单行

时间:2017-02-27 09:08:13

标签: php mysql

我' m使用以下代码获取所需的详细信息,即所有具有最高总数的书籍,以显示网站中出现的最热门/最受欢迎的书籍。总列描述了编号。有时,网站的用户查看了某本书。这是代码`

<?php    
include("connection.php");
global $con;
$sql1= "SELECT book FROM vi_views ORDER BY total DESC LIMIT 3";
$query1= mysqli_query($con,$sql1);
if (!$query1)
{
  printf("Error: %s\n", mysqli_error($con));
  exit();
}
$obj1=mysqli_fetch_array($query1,MYSQLI_BOTH);
$row1=mysqli_num_rows($query1);
if ($row1>0)
{
  echo var_dump($obj1);
}
?>

以下是我的表格外观的样子

表格:vi_views

id  book  course  date  total

1   book1  null  dd//mm/yy 3   
2   null   course1 dd/mm/yy 1    
3  book2   null dd/mm/yy 8    

依旧......

问题是查询正在运行,但只显示了根据查询的第一条记录,即本例中的book2并且不再显示任何图书。我缺少代码的地方请告诉我......

5 个答案:

答案 0 :(得分:1)

您需要循环执行查询后返回的行。

$rowCount=mysqli_num_rows($query1);
if ($rowCount > 0)
{
  while ($row = mysql_fetch_array($result)) {
    echo var_dump($row);  // Can do something what you want to with data
  }
} else {
  echo 'No records';
}

答案 1 :(得分:0)

bjobs -u all | grep SUSP 更改为$obj1=mysqli_fetch_array($query1,MYSQLI_BOTH);使用获取数组,您当时只能获得一行

答案 2 :(得分:0)

试试这个:

SELECT COUNT(CASE WHEN total < 60 then 1 else NULL END)
    , COUNT(CASE WHEN total > 80 then 1 else NULL END)
FROM School
WHERE ID = '8'

$sql1= "SELECT book FROM vi_views ORDER BY total DESC LIMIT 3";
$query1= mysqli_query($con,$sql1);

while ($row = mysqli_fetch_assoc($query1)) {
    print_r($row);
}
  

输出:

book1

book2

BOOK3

答案 3 :(得分:0)

请试试这个:

$obj1 = mysqli_fetch_array($query1,MYSQLI_BOTH);
while($row = mysqli_fetch_assoc($query1)){
  $book=$row['book'];
  echo var_dump($book);
}

答案 4 :(得分:0)

你应该循环结果。

$rowCount=mysqli_num_rows($query1);
if ($rowCount > 0)
{
  while ($row = mysql_fetch_assoc($result)) {
  echo "<pre>";
  print_r($row);
  echo "</pre>";
}