Я прочитал другие темы, но не думаю, что нашел ответ (или, может быть, просто не знаю, как его реализовать ...). У меня есть таблица mysql со столбцами для размера элемента, среди прочего. пользователь заполняет форму, в которой размеры mulitple могут быть выбраны из серии флажков. я хочу, чтобы иметь возможность вставлять выбранные значения флажка в соответствующие столбцы, оставляя остальные столбцы нулевыми или, если необходимо, угадывать как значение 0. столбцы - это формат tinyint прямо сейчас.Добавление нескольких значений флажка в несколько столбцов в одной строке
'One Size'
<input type="checkbox" name="itemSize[]" value="1" />
Малый
<input type="checkbox" name="itemSize[]" value="2" />
Medium
<input type="checkbox" name="itemSize[]" value="3" />
Большой
<input type="checkbox" name="itemSize[]" value="4" />
таблица базы данных имеет столбцы с именем oneSize, малые, средние и большие.
ВОТ КОД Я пытался вставить запись основан на статью в найдене в форуме:
$itemName=$_POST["itemName"];
$allsizes=$_POST["itemSize"];
var_dump($allsizes);
$itemSizing="";
foreach($allsizes as $size){
$itemSizing .=$size .",";
}
$itemSizing=substr($allsizes, 0, -2);
$price=$_POST["price"];
$smallPrice=$_POST["smallPrice"];
$mediumPrice=$_POST["mediumPrice"];
$largePrice=$_POST["largePrice"];
$decsription=$_POST["description"];
$category_id=$_POST["category_id"];
, а затем в операторе вставки я попытался листингом каждого столбца и затем значения для 4-х размеров элементов, взятых из флажков, перечислены как сцепленная строка:
$SQL="INSERT INTO menuItems (itemName,oneSize,small,medium, large,price,smallPrice,mediumPrice,largePrice,description,category_id) VALUES ('$itemName','$itemSizing','$price','$smallPrice','$mediumPrice','$largePrice','$description','$category_id')";
Это ошибка СООБЩЕНИЯ Я GOT при попытке вставки A RECORD Показывая небольшой размер и A БОЛЬШОЙ РАЗМЕР галочка, а два других Флажки ЛЕВОГО UNCHECKED:
array(2) { [0]=> string(1) "2" [1]=> string(1) "4" }
Warning: substr() expects parameter 1 to be string, array given in menuItems.php on line 162
INSERT INTO menuItems (itemName,oneSize,small,medium,large,price,smallPrice,mediumPrice,largePrice,description,category_id) VALUES ('Garden Salad','','','3.99','','6.99','Fresh greens with lettuce, tomatoes and cucumbers. Served with your choice of dressing.','3') : Error in query. Contact Site Admin
Я думал, что строка создается была серия из значений CheckBox выделившихся для вставки в различные колонки - что именно то, что я хочу, чтобы это произошло - но это явно не сработало. Я, очевидно, не очень хорошо разбираюсь в массивах, поэтому извиняюсь, если это простой вопрос.
большое спасибо за любую помощь, кто может обеспечить ...
Вы можете добавить вывод 'эхо«
»' в вашем вопросе, чтобы мы видим, что вы отправляете? Благодарю. – NikosНет ** foreach() ** $ sizing = join (',', $ allsizes); –
большое спасибо за ваши ответы - я сначала попробовал решение, отправленное Buse Gonen, но не смог заставить его работать, скорее всего, из-за того, что не знал точно, что реализовать. Затем я попробовал решение, размещенное Шона ниже, и получил его на работу. очень ценится всем. – GlobalVillage