2015-04-28 51 views
0

我有以下複選框項目,我想將它們插入到數據庫中。在MysQl中插入多個複選框值

<form action="test.php" method="post"> 
<input type="checkbox" name="check_list[]" value="rice:10"> 
<input type="checkbox" name="check_list[]" value="milk:8"> 
<input type="checkbox" name="check_list[]" value="orange:4"> 
<input type="submit" /> 
</form> 

以下是PHP代碼:

if(!empty($_POST['check_list'])) { 
    foreach($_POST['check_list'] as $check) { 
     $mealA = explode(":",$check); 
     $meal = $mealA[0]; 
     $sql1 = "INSERT INTO Order (User, Meal, Total) VALUES ('$name' , '$meal', '$total')"; 
     if (mysqli_query($mysqli,$sql1)) { 
      echo "You order has been recieved"; 
     } else { 
      echo "Error: " . $sql1; 
     } 
    } 
} 

注意,每個複選框的值是指項目名稱:價格。

的問題是,我得到了錯誤"Error: " . $sql1;

+0

'$ mysqli'值來自哪裏? – Maximus2012

+0

另外,嘗試添加'mysqli_error'到您的代碼:http://php.net/manual/en/mysqli.error.php – Maximus2012

+2

更改''錯誤:「。 $ sql1'到'「錯誤:」。 mysqli_error($ mysqli)',這樣你就可以更好地理解它失敗的原因。 – kidA

回答

2

,因爲你沒有爲$total設置值你查詢失敗。因此,無論你必須從導致

$sql1 = "INSERT INTO Order (User, Meal) VALUES ('$name' , '$meal')"; 

查詢其將根據

OR

給予NULL值的Total列每個成功的新的插入刪除Total場你提供的代碼我猜你想做類似的事情?

$mealA = explode(":",$check); 
$meal = $mealA[0]; 
$total = $mealA[1]; // setting the value of $total otherwise query is going to fail 
$sql1 = "INSERT INTO Order (User, Meal, Total) VALUES ('$name' , '$meal', '$total')"; 
0

問題是插入語句:

INSERT INTO Order (User, Meal, Total) VALUES ('$name' , '$meal', '$total') 

我從Order更改的表名Orders和我刪除Total,因爲它是零,也沒有存儲在它的價值。

感謝您的建議。