2015-04-28 4 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

Адрес: $ 8, – Maximus2012

+0

Также попробуйте добавить 'mysqli_error' к вашему коду: http://php.net/manual/en/mysqli.error.php – Maximus2012

+2

Изменить' 'Ошибка:". $ sql1' to '" Ошибка: ". mysqli_error ($ mysqli) ', чтобы вы могли лучше понять, почему он терпит неудачу. – kidA

ответ

2

Ваш запрос не будет, потому что вы не установили значение для $total. Так как вы должны удалить Total поля из запроса, в результате

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

который даст NULL значения в 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, так как он является недействительным и не существует никакой ценности в нем хранятся.

Спасибо за ваши предложения.

Смежные вопросы