我需要一些嵌套foreach
的帮助。
这是我的代码:
$program = $_POST['program'];
$licence = $_POST['licence'];
foreach($program as $p){
foreach($licence as $l){
mysql_query("INSERT INTO programs (pcname, program, licence) VALUES ('". $pcname ."', '". $p ."', '". $l ."')");
}
}
这不起作用,我知道原因。但我无法找到解决问题的方法。问题是,它正在遍历内部foreach
内的所有值,然后是遍历所有值,重新遍历外部foreach
中的下一个值。
这可能没有得到很好的解释,但希望你能理解我在努力实现的目标,并帮助我。
答案 0 :(得分:2)
假设你的两个数组在它们的元素之间有1:1的映射,比如说。每个5,然后您的嵌套循环将产生25个插入调用。您需要使用一个数组中的键来引用另一个:
foreach($program as $key => $p) {
$l = $license[$key];
mysql_query(...);
}
并注意您sql injection attacks已开放。
答案 1 :(得分:0)
如果我错了,请纠正我,但我相信只需将查询语句移到第一个for循环之后就可以解决问题......