0

我需要一些有关嵌套的帮助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 ."')");

  }
}

这不起作用,我知道为什么。但我找不到解决问题的方法。问题是,它会遍历 inside 中的所有值foreach,然后遍历它们,再一遍一遍地遍历 outside 中的下一个值foreach

这可能没有很好地解释,但希望你能理解我在努力实现目标并帮助我。

4

2 回答 2

2

假设你的两个数组在它们的元素之间有一个 1:1 的映射,比如说。每个 5 个,那么您的嵌套循环将产生 25 个插入调用。您需要使用一个数组中的键来引用另一个数组:

foreach($program as $key => $p) {
    $l = $license[$key];
    mysql_query(...);
}

请注意,您对sql 注入攻击是开放的。

于 2013-04-11T19:26:38.053 回答
0

如果我错了,请纠正我,但我相信只需将查询语句移到第一个 for 循环之后即可解决您的问题...

于 2013-04-11T19:37:46.183 回答