所以,这是我遇到的一件奇怪的事情,也许是因为深夜或我只是缺少一些基本的东西。我必须将查询发送到数组,而不是循环查询,因为其他API调用可以发送数组而不是来自数据库。该查询返回多个项目,因为它也是。到代码:对数组的MySQLi查询 - 在数组上循环返回空结果
$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
好吧,我明白了;但是,代码依然显示了$ tmp数组中的2个项目。这是可见的,因为在for循环中添加了2个元素。我无法更改for循环,因为它可能是一个查询,或者它可能是一个传递的数组,所以默认情况下所有内容都将转到数组。我应该只是通过这个查询并循环查询并将这些项目添加到$ tmp数组中?我只是认为有一个更清洁的方法。 – Munsterlander
@ user1666691您在数组中获得两个项目,因为您在'fetch_array'中传递'MYSQLI_BOTH',其中一个ID为'0',另一个ID为'ID',但其值相同。如果你需要一个数组,就像你说的那样,只是在查询结果的while循环中建立一个数组。 – Musa
Right-o。在弄乱之后,我想这是我最终必须做的事情。 – Munsterlander