2014-07-14 63 views
0

試圖獲得此選項以允許選擇多於1個複選框。foreach只插入一條記錄?不能看到錯誤?

  <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,則只插入第一個。

真的不能看到它有什麼問題。

謝謝

+0

顯示更多php代碼 –

+0

@Feroz我添加了一點點,所以你有更好的範圍。 – FallingStar

+0

正如@MakKrnic提到的那樣請提供'var_dump($ _ POST)'或'var_dump($ _ POST ['roomid'])的輸出' – Basic

回答

2

對不起,但我還不能評論。

您檢查了多少個複選框? 大多數瀏覽器不提交未經檢查的複選框。

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

+0

這應該是你注意到的一個評論,但這是一個很好的觀點 – Basic

0

注輸出:

mysql擴展已被棄用的PHP 5.5.0,並在未來將被刪除 。相反,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>'; 
    } 

} 

這裏$鏈接是VAR抱着你的連接。因此,在運行此代碼之前替換此變量。