Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP/MySQL:获取一个结果_Php_Mysql - Fatal编程技术网

PHP/MySQL:获取一个结果

PHP/MySQL:获取一个结果,php,mysql,Php,Mysql,这是我的数据库: 以下是查询: 从用户中选择* 现在当我这样做的时候: $query = $connection->query($_GET['query']); // SELECT * FROM users print_r($query->fetch_assoc()); 我将此作为输出: 排列 [id]=>3 [用户名]=>karel 为什么不输出id 4和用户名ccscs 当我执行while循环时: while($row = $query->fetch_assoc()){

这是我的数据库:

以下是查询:

从用户中选择*

现在当我这样做的时候:

$query = $connection->query($_GET['query']); // SELECT * FROM users
print_r($query->fetch_assoc());
我将此作为输出:

排列 [id]=>3 [用户名]=>karel

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

当我执行while循环时:

while($row = $query->fetch_assoc()){
    print_r($row);
}
那是因为只取一行

要获取每一行,可以按如下方式执行:

while($row = $query->fetch_assoc()){
   print_r($row);
}
那是因为只取一行

要获取每一行,可以按如下方式执行:

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

发生这种情况的原因是,您不给查询下任何命令,所以它会自动获取第一条记录。如果您想返回最后一条记录,您可以按id desc进行订购,如下所示

SELECT * FROM users ORDER BY id DESC
$fields = array();
while($row = $query->fetch_assoc())
{
    print_r($row);
    $fields[] = $row;
}
如果您需要检索所有记录,则需要循环抛出您的记录

while($row = $query->fetch_assoc())
{
    print_r($row);
}
根据新的操作信息,我不会获取两次,而是一次,如下所示

SELECT * FROM users ORDER BY id DESC
$fields = array();
while($row = $query->fetch_assoc())
{
    print_r($row);
    $fields[] = $row;
}

发生这种情况的原因是,您不给查询下任何命令,所以它会自动获取第一条记录。如果您想返回最后一条记录,您可以按id desc进行订购,如下所示

SELECT * FROM users ORDER BY id DESC
$fields = array();
while($row = $query->fetch_assoc())
{
    print_r($row);
    $fields[] = $row;
}
如果您需要检索所有记录,则需要循环抛出您的记录

while($row = $query->fetch_assoc())
{
    print_r($row);
}
根据新的操作信息,我不会获取两次,而是一次,如下所示

SELECT * FROM users ORDER BY id DESC
$fields = array();
while($row = $query->fetch_assoc())
{
    print_r($row);
    $fields[] = $row;
}
fetch_assoc从结果集中检索一行

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

您应该使用如下内容:

while($row = $query->fetch_assoc()){
   print_r($row);
}
fetch_assoc从结果集中检索一行

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

您应该使用如下内容:

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


这将返回最后一条记录,但我认为OP希望获取所有行。这就是为什么我放置两个解决方案使用第二个解决方案,然后循环抛出所有记录。不要两次获取结果,只在同一个循环中执行这两个操作。这将返回最后一条记录,但我认为OP想要获取所有行。这就是为什么我放置了两个解决方案使用第二个解决方案,循环抛出所有记录。不要两次获取结果,只需在同一个循环中执行两个操作。仍然只有一行:while$fetch=$query->fetch\u assoc{print\r$fetch;}你是什么意思?你能给我们看看产量吗。如果您的意思是每一行都有一行,那么这是正常的。@user3144435这就是您之前放置的for循环的原因。它已经检索到第一行,而while循环只获取其余的。移除它,它应该会工作。你是说foreach循环吗?这就是获取字段名,当我删除它时,它起作用了,但现在我无法再获取字段名。您需要为获取字段名编写自己的查询,或者您可以在while的第一次迭代中获取名称。仍然有一行:while$fetch=$query->fetch\u assoc{print\r$fetch;}您是什么意思?你能给我们看看产量吗。如果您的意思是每一行都有一行,那么这是正常的。@user3144435这就是您之前放置的for循环的原因。它已经检索到第一行,而while循环只获取其余的。移除它,它应该会工作。你是说foreach循环吗?这是为了获取字段名,当我删除它时,它可以工作,但现在我无法再获取字段名。您需要编写自己的查询来获取字段名,或者您可以在while的第一次迭代中获取名称。