简体   繁体   English

PHP / MySQL:获取一个结果

[英]PHP/MySQL: fetch one result

This is my database: 这是我的数据库:

数据库

This is the query: 这是查询:

SELECT * FROM users 选择*来自用户

Now when I do this: 现在,当我这样做时:

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

I get this as output: 我得到这个作为输出:

Array ( [id] => 3 [username] => karel ) 数组([id] => 3 [username] => karel)

Why does it not output id 4 and username ccscs? 为什么不输出ID 4和用户名ccscs?

When I a while loop: 当我一会儿循环:

while循环

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

That's because fetch_assoc() just fetches one row. 这是因为fetch_assoc()仅获取一行。

To get each row you can do it like this: 要获得每一行,您可以这样操作:

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

This is happening because you don't give any order to your query so it automatically get first record. 发生这种情况是因为您没有对查询进行任何排序,因此它会自动获得第一条记录。 If you want to return last record you can order by id desc as follow 如果您想返回最后一条记录,可以按id desc进行排序,如下所示

SELECT * FROM users ORDER BY id DESC

If you instead need to retrieve all records you will need to loop throw your records 如果您需要检索所有记录,则需要循环抛出记录

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

Based on new op info i would not fetch twice but one as follow 根据新的操作信息,我不会获取两次,但如下

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

fetch_assoc() retrieves a single row from a result set. fetch_assoc()从结果集中检索一行。 See here . 看这里

mysqli_result::fetch_assoc -- mysqli_fetch_assoc — Fetch a result row as an associative array mysqli_result :: fetch_assoc-mysqli_fetch_assoc —获取结果行作为关联数组

You should use something like this : 您应该使用这样的东西:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM