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

时间:2015-06-16 12:24:56

标签: 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(); 

然后尝试将结果排序为关联数组,其中'number'是键,'body'是值。

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查询,它会像我期望的那样返回所有四行。

有没有人有任何想法我做错了什么?

1 个答案:

答案 0 :(得分:2)

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

mysqli_fetch_arraymysqli_fetch_assoc在每次通话时返回NEXT行。