所以,這是我遇到的一件奇怪的事情,也許是因爲深夜或我只是缺少一些基本的東西。我必須將查詢發送到數組,而不是循環查詢,因爲其他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