为复选框提供的参数无效

时间:2013-04-20 05:17:29

标签: php mysql

我的网站显示此警告:

  

第37行的/admin/insert.php中为foreach()提供的参数无效

我已经使用这个php代码从复选框

中插入mysql数据库中的数据

我该如何解决?

由于

<table>
    <tr>
        <td bgcolor="#FFEBC1"> 
            <input type="checkbox" name="E1[]"value="1" >
                国語
            <input type="checkbox" name="E1[]" value="2" >
                算数
            <input type="checkbox" name="E1[]" value="3" >
                理科
            <input type="checkbox" name="E1[]" value="4" >
                社会 
            <input type="checkbox" name="E1[]" value="5" >
                英語
         </td>
     </tr>
</table>
<?php 
$ele_school = $_POST['E1'];
$selected_schoo2 = "";
foreach ($ele_school as $ele_school2 ) {
    $selected_schoo2 .= $ele_school2 . ", ";
}
$selected_schoo2 = substr($selected_schoo2, 0, -2);
$query="insert into  person(id,login_date,name,selected_schoo)
     values('$_POST[PID]',
    '$_POST[REGISTRATION]',
    '$_POST[FURIGANA2]',
    '$selected_schoo2')";
     mysql_query($query) or die("not successfully insert".mysql_error());
?>

2 个答案:

答案 0 :(得分:3)

可能存在数据未进入$ _POST ['E1']的情况,

然后在那种情况下你正在为空白数组执行foreach, 所以你需要做的就是

if(isset($ele_school) && $ele_school != NULL){
     foreach($ele_school as $ele_school2){
     // your script
     }
}

答案 1 :(得分:0)

您应该使用:

if (isset($_POST['E1']) {  

    //then use your foreach loop
}