所以,这是我遇到的一件奇怪的事情,也许是因为深夜,或者我只是遗漏了一些基本的东西。我必须将查询发送到数组而不是循环查询,因为其他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数组;但是,使用查询时会发生的情况是,只有第一条记录在select中填充。添加了正确数量的项目,但缺少值。 即。
<option value="">Item 2</option>
<option value="7">Item 1</option>
编辑:PHP确实抛出一个错误:未定义的偏移量:1
答案 0 :(得分: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;
答案 1 :(得分:0)
实际上,
for($i = count($tmp); $i > 0; --$i) {
echo 'Item '.$i.'';
}
如果 $ tmp 返回正确的金额,应该有效。确保 $ tmp 返回正确的数据。
希望这会有所帮助。