PHP / MySQL:获取一个结果

时间:2014-02-16 10:41:54

标签: php mysql

这是我的数据库:

database

这是查询:

  

SELECT * FROM users

现在我这样做了:

$query = $connection->query($_GET['query']); // SELECT * FROM users
print_r($query->fetch_assoc());

我得到这个作为输出:

  

阵列(       [id] => 3       [username] => karel)

为什么不输出id 4和用户名ccscs?

我什么时候循环:

whileloop

while($row = $query->fetch_assoc()){
    print_r($row);
}

3 个答案:

答案 0 :(得分:2)

那是因为fetch_assoc()只取一行。

要获得每一行,您可以这样做:

while($row = $query->fetch_assoc()){
   print_r($row);
}

答案 1 :(得分:2)

这种情况正在发生,因为您没有为查询提供任何订单,因此它会自动获得第一条记录。如果您想要返回最后一条记录,可以通过id desc订购,如下所示

SELECT * FROM users ORDER BY id DESC

如果您需要检索所有记录,则需要循环记录

while($row = $query->fetch_assoc())
{
    print_r($row);
}

基于新的操作信息,我不会获取两次,而是一次如下

$fields = array();
while($row = $query->fetch_assoc())
{
    print_r($row);
    $fields[] = $row;
}

答案 2 :(得分:2)

fetch_assoc()从结果集中检索单行。 See here

  

mysqli_result :: fetch_assoc - mysqli_fetch_assoc - 获取结果行   作为关联数组

你应该使用这样的东西:

while($row = $query->fetch_assoc()){
   print_r($row);
}