如何在一行中编写多个foreach条件

时间:2014-01-06 12:11:46

标签: php mysql

我的代码无效,显示条件错误。

 <?
 foreach($_POST['check'] as $value )   
 foreach($_POST['emp'] as $value2 )     
 { 
 mysql_query("insert into tb_recived_jobs set job_id='$value'emp_id='$value2'");  
 }     
 ?>

4 个答案:

答案 0 :(得分:1)

您应该使用For循环来执行此操作

$count = count($_POST['check']);

for($i=0;$i<=$count;$i++) {
    $value= $_POST['check'][$i];
    $value2= $_POST['emp'][$i];
    mysql_query("insert into tb_recived_jobs(job_id,emp_id) values('$value','$value2')"); 
}

答案 1 :(得分:1)

像这样纠正你的SQL查询:

"insert into tb_recived_jobs set job_id='$value' emp_id='$value2'"

你在第一列和第二列之间缺少一个空格, 像这样的INSERT SQL查询可以帮助更多:

"INSERT INTO `tb_recived_jobs` (`job_id`, `emp_id`) VALUES ('$value', '$value2');"

更新: 我刚刚意识到错误的原因,因为这里你有两个数组,你想通过查询插入它们的值,在这种情况下,两个数组应该具有相同的长度,一切顺利

$checks = $_POST['check'];
$emps = $_POST['emp'];

$length = count($checks);
if ($length === count($emps)) {
    for ($i = 0; $i < $length; $i++) {
        $sql = "INSERT INTO `tb_received_jobs` (`job_id`, `emp_id`) VALUES ('{$checks[$i]}', '{$emps[$i]}');";
        //  send the query
    }
}

这应该可以正常工作。

答案 2 :(得分:0)

你可以在一个数组中合并两个数组$ _POST ['check']和$ _POST ['emp'],而不是使用foreach。

答案 3 :(得分:0)

尝试此操作,因为我了解您是否要为每个$_POST['emp']插入每个$_POST['check']

<?
foreach($_POST['check'] as $value ) 
{  
 foreach($_POST['emp'] as $value2 )     
 { 
    mysql_query("INSERT INTO `tb_recived_jobs`(job_id, emp_id) VALUES('$value', '$value2')") or die(mysql_error());  
 } 
}    
 ?>