mysqli fetch_assoc只有1个结果而不是全部

时间:2013-04-25 20:40:51

标签: php mysql mysqli fetch

if ($result = $db->query("SELECT * FROM tab WHERE ID = $id")) {
while($row = $result->fetch_assoc() ){
echo "ID:". $row['ID'];
echo "Product:" .$row['Product'];
... }
$result->close();
} else {
echo "could not retrieve data from db";  }

我只得到一个结果,但它应该更多。 我如何获得所有结果?

btw我不能使用fetch_all。

4 个答案:

答案 0 :(得分:2)

您在查询中使用了ID,这意味着您要求提供特定项目。为了选择所有你必须删除这个条件。

您的代码如下:

  if ($result = $db->query("SELECT * FROM tab")) {
    while($row = $result->fetch_assoc() ){
      echo "ID:". $row['ID'];
      echo "Product:" .$row['Product'];
    }
    $result->close();
  } else {
    echo "There is no data in the database";  
  }

答案 1 :(得分:1)

替换

$result = $db->query("SELECT * FROM tab WHERE ID = $id"

$result = $db->query("SELECT * FROM tab WHERE ID = $id LIMIT 1"

答案 2 :(得分:0)

您必须从选项卡中选择id和product,并添加where语句。

您的代码如下:

  if ($result = $db->query("SELECT ID, Product, user FROM tab WHERE user='".$username."' ")) { //$username = john;
    while($row = $result->fetch_assoc() ){
      echo "ID:". $row['ID'];
      echo "Product:" .$row['Product'];
    }



  } else {
    echo "There is no data in the database"; 

  } result->close();

让我希望你的等值是约翰这个名字可能是什么。因此,您将从数据库中获取列出john一词的所有结果行。

把$ username ='john';在if语句之前。

答案 3 :(得分:-2)

从MYSQL结果中获取数据的过程如下:

  • 连接到主机
  • 选择数据库
  • 运行查询

if ($result) //Check if the return is true

while($row = mysqli_fetch_array($result)) { // do something with the $row //like print it } }

为了完全确定使用

打印查询
echo $your_query

然后通过phpMyAdmin运行该查询,看看你得到了什么结果或错误。