我正在創建一個班級書籍列表 - 這裏有一個書籍主列表以及該班級可以分配的書籍列表。我需要創建主列表的數組,刪除已分配給該類的書籍,然後創建剩餘書籍的選擇列表。我大部分工作,但我堅持一小部分。 首先,我加載陣列(該book_id是關鍵,BOOK_TITLE是價值):Foreach鍵不遞增
while ($master_book = mysql_fetch_array($big_book_list)) {
$b_id = $master_book['master_book_list_id'];
$book_list[$b_id] = $master_book['book_title'];
}
然後我刪除類的主簿(它已經被設置):
unset($book_list[$primary_book]);
現在我加載的已經被分配了二次書籍陣列(原發性和繼發性的書籍都來自相同的列表):
$secondary_query = "select * from class_books cb, master_book_list mbl where class_id ='$class_id' and cb.book_id = mbl.master_book_list_id;";
$secondary_list = mysql_query($secondary_query);
現在我從secondary_list $從t取出書他主要列表:
while ($secondary_book = mysql_fetch_array($secondary_list)) {
$b_id = $secondary_book['book_id'];
unset($book_list[$b_id]);
}
在這一點上,print_r正確顯示我的數組。但是這個代碼:
foreach ($book_list as $book2) {
$the_key = key($book_list);
echo $the_key . ' and book2 is '. $book2 . '<br/>';
}
它會遍歷預測的次數,但在同一價值的關鍵支柱(這是「2」,數組中的第一個值
任何人都可以看到的。我做錯了
** **警告你的代碼可能會受到SQL注入攻擊 – 2012-08-06 18:18:17
你不是說要使用$ book2 ins在那個循環中的書單? – 2012-08-06 18:23:01
你應該停止使用'mysql_ *'函數。他們正在被棄用。請使用[PDO](http://php.net/manual/en/book.pdo.php)(自PHP 5.1起支持)或[mysqli](http://php.net/manual/en/book)。 mysqli.php)(自PHP 4.1起支持)。如果你不確定使用哪一個,[閱讀這篇文章](http://stackoverflow.com/questions/13569/mysqli-or-pdo-what-are-the-pros-and-cons)。 – Matt 2012-08-06 18:23:56