0

所以,这是我遇到的一件奇怪的事情,也许是因为深夜,或者我只是在这里遗漏了一些基本的东西。我必须将查询发送到数组而不是循环查询,因为其他 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 数组;但是,当您使用查询时会发生什么,只有第一条记录会填充到选择中。添加了正确数量的项目,但缺少值。IE

<option value="">Item 2</option>
<option value="7">Item 1</option> 

编辑:PHP 确实抛出错误:未定义的偏移量:1

4

2 回答 2

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;
于 2012-11-28T05:13:45.427 回答
0

实际上,

 
  for($i = count($tmp); $i > 0; --$i) {
    echo 'Item '.$i.'';
  }
 

如果$tmp返回正确的金额,应该可以工作。确保$tmp返回正确的数据。

希望这可以帮助。

于 2012-11-28T05:24:17.017 回答