我正在创建一个班级书籍列表 - 这里有一个书籍主列表以及该班级可以分配的书籍列表。我需要创建主列表的数组,删除已分配给该类的书籍,然后创建剩余书籍的选择列表。我大部分工作,但我坚持一小部分。 首先,我加载阵列(该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