我在 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_array
和 mysqli_fetch_assoc
在每次调用时返回 NEXT 行。
关于php - 关联数组不存储 SQL 的第一个结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30867533/