php - 关联数组不存储 SQL 的第一个结果

标签 php mysql arrays sorting

我在 MySQL 中有一个数据库,我使用此查询通过 PHP 从中选择某些行:

$q = "SELECT Number, Body 
      FROM boxes 
      WHERE Number BETWEEN '1' AND '4' ORDER BY Number ASC";

然后调用查询并初始化数组:

$r = $mysqli->query($q);
$row = mysqli_fetch_array($r, MYSQLI_ASSOC);
$array = array();
$content = array(); 

然后尝试将结果排序到关联数组中,其中“数字”是键,“正文”是值。

while ($row = mysqli_fetch_assoc($r)) {
    $array = array(
    $content[$row['Number']] = $row['Body']
);

除了不会存储第一个值外,这工作正常。这是 print_r($content); 的结果,缺少第一行。

Array ( [2] => This is entry two [3] => This is entry three [4] => This is entry four ) 

我尝试在 PHPMyAdmin 中运行 SQL 查询,它返回了我预期的所有四行。

有人知道我做错了什么吗?

最佳答案

$row = mysqli_fetch_array($r, MYSQLI_ASSOC);
您将通过此行获得第一个返回的行。您必须删除它,它才能正常工作。

mysqli_fetch_arraymysqli_fetch_assoc 在每次调用时返回 NEXT 行。

关于php - 关联数组不存储 SQL 的第一个结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30867533/

相关文章:

php - 获取将使用 PHPUNIT 配置文件执行的测试列表

mysql - 在 Laravel 中将 JSON 对象保存到 MySQL 数据库中

php - MySQL 与 WHERE 进行重复更新?

php - 使用PHP的“Notice: Undefined variable”,“Notice: Undefined index”和“Notice: Undefined offset”

java - 二维数组未正确声明

javascript - arr.push(arr.splice(n,1)) "swallows"被移动对象的属性

php - CakePHP 订单查询结果超过 1 级

php - 如何更改 PHP 中 POST 变量的最大数量?

php - 如何在子查询中使用 SHOW CREATE TABLE?

mysql - SQL - 水平连接两个选择结果