[英]MySQLi query to Array - Looping over array returns empty results
因此,这是我遇到的一件奇怪的事情,也许是因为深夜,或者我只是在这里缺少一些基本的东西。 我必须将查询发送到数组而不是遍历查询,因为其他API调用可以发送数组而不是来自数据库。 该查询也会返回多个项目。 转到代码:
$result = $db->query("SELECT ID FROM tblTemp WHERE FOREIGN_KEY='2'");
$tmp = $result->fetch_array(MYSQLI_BOTH);
for($i = count($tmp); $i > 0; --$i) {
echo '<option value="'.$tmp[$i-1].'">Item '.$i.'</option>';
}
因此,我只是试图将数组项放入HTML选择中。 这对于传递的$ tmp数组很好; 但是,使用查询时发生的是,在选择中仅填充了第一条记录。 添加了正确数量的项目,但缺少值。 即
<option value="">Item 2</option>
<option value="7">Item 1</option>
编辑:PHP确实引发以下错误:未定义偏移量:1
您只从查询中获取一条记录,这就是为什么您只有一个值并获得未定义的偏移量的原因。 在以下示例中,使用while循环从查询中获取所有结果。
$result = $db->query("SELECT ID FROM tblTemp WHERE FOREIGN_KEY='2'");
$html = "";
$i = 1;
while($tmp = $result->fetch_array(MYSQLI_BOTH)) {
$html = '<option value="'.$tmp['ID'].'">Item '.$i.'</option>'.html;
$i++;
}
echo $html;
其实,
for($i = count($tmp); $i > 0; --$i) {
echo 'Item '.$i.'';
}
如果$ tmp返回正确的金额,则应该工作。 确保$ tmp返回正确的数据。
希望这可以帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.