foreach只插入一条记录?看不到错误?

时间:2014-07-14 15:28:59

标签: php html mysql database

尝试将此选中允许选中多个复选框。

表格

          <fieldset>                
            <legend>Rooms</legend>
                <ol>
                    <li>
                        <label for =youthCafe>Youth Cafe</label>
                        <input type="checkbox" name="roomid[]" value="1" ><br>
                        <label for =inkwellMain>Inkwell Main</label>
                        <input type="checkbox" name="roomid[]" value="2"><br>
                        <label for =inkwellSmall>Inkwell Small</label>
                        <input type="checkbox" name="roomid[]" value="3"><br>
                        <label for =kitchen>Kitchen</label>
                        <input type="checkbox" name="roomid[]" value="4"><br>
                        <label for =outsideCatering>Outside Catering</label>
                        <input type="checkbox" name="roomid[]" value="5"><br>
                    </li>
                </ol>
            </fieldset>

PHP

        mysql_select_db('eydg');
        $query = "insert into orders (customerNo) 
        values ($customerNo)";                  
        $result = mysql_query($query);

        $query = "select * from orders where customerNo = '$customerNo'";
        $result = mysql_query($query);
        $row = mysql_fetch_array($result);
        $bookingNo= $row['bookingNo'];

        if ( isset($_POST['roomid']) ){
            foreach( $_POST['roomid'] as $value ){ 
                $query = "insert into bookings (bookingNo,roomNo) 
                values ('$bookingNo','$value')"; 

                $result = mysql_query($query);
            }
        }

目前它只允许将1个选择添加到数据库中。它们都是自己工作但是如果选择了大于1,那么它只会插入第一个。

真的不知道它有什么问题。

由于

2 个答案:

答案 0 :(得分:2)

很抱歉,但我无法发表评论。

您检查了多少个复选框? 大多数浏览器都不提交未选中的复选框。

另外,请提供var_dump($_POST)var_dump($_POST['roomid'])

的输出

答案 1 :(得分:0)

注意:

  

自PHP 5.5.0起,不推荐使用mysql扩展,并将其删除   在将来。相反,MySQLi或PDO_MySQL扩展应该是   使用

你的代码对我来说没问题。

我建议你使用xdebug观察你的代码是否运行,这会清楚地告诉你哪里有麻烦。

但第一步可以看看此代码返回的内容:

foreach( $_POST['roomid'] as $key => $value ){

    echo "\n<br>\n<br>array key=" . $key . ' : value=' . $value;
    $query = "insert into bookings (bookingNo,roomNo) values ('$bookingNo','$value')";
    echo "\n<br>query" . ' : ' . $query;
    $result = mysql_query($query, $link);
    if(!$result){
        echo "\n<br><h1>Error : " . mysql_errno($link) . ": " . mysql_error($link) . '</h1>';
    }

}

此处 $ link 是保存连接的var。所以在运行此代码之前替换此变量。