Как вставить несколько значений флажка в таблицу?

Кажется, я не нашел или не нашел рабочего решения для вставки нескольких значений флажка из формы в таблицу. Закрытие, которое я пришел, вставляет значение только одного значения флажка в таблицу. Просьба указать, как я могу вставить несколько значений флажка, а не только один.

Найдите ниже, что у меня есть:

Моя форма:

<html> <body> <form method="post" action="chk123.php"> Flights on: <br/> <input type="checkbox" name="Days" value="Daily">Daily<br> <input type="checkbox" name="Days" value="Sunday">Sunday<br> <input type="checkbox" name="Days" value="Monday">Monday<br> <input type="checkbox" name="Days" value="Tuesday">Tuesday <br> <input type="checkbox" name="Days" value="Wednesday">Wednesday<br> <input type="checkbox" name="Days" value="Thursday">Thursday <br> <input type="checkbox" name="Days" value="Friday">Friday<br> <input type="checkbox" name="Days" value="Saturday">Saturday <br> <input type="submit" name="submit" value="submit"> </form> </body> </html> 

Мой php-файл для чтения и вставки значений в таблицу:

 <?php // Make a MySQL Connection mysql_connect("localhost", "root", "") or die(mysql_error()); mysql_select_db("test") or die(mysql_error()); $checkBox = $_POST['Days']; if(isset($_POST['submit'])) { for ($i=0; $i<sizeof($checkBox); $i++) { $query="INSERT INTO example (orange) VALUES ('" . $checkBox[$i] . "')"; mysql_query($query) or die (mysql_error() ); } echo "Complete"; } ?> 

Solutions Collecting From Web of "Как вставить несколько значений флажка в таблицу?"

Вы должны указать

 <input type="checkbox" name="Days[]" value="Daily">Daily<br> 

как массив.

Добавьте [] ко всем именам Days и работайте с php с этим, как с массивом.

После этого вы можете INSERT значения INSERT в разных столбцах в db или использовать значения implode и сохранять значения в один столбец.


Не тестировал его, но вы можете попробовать это. Не забудьте заменить mysql на mysqli .

 <html> <body> <form method="post" action="chk123.php"> Flights on: <br/> <input type="checkbox" name="Days[]" value="Daily">Daily<br> <input type="checkbox" name="Days[]" value="Sunday">Sunday<br> <input type="checkbox" name="Days[]" value="Monday">Monday<br> <input type="checkbox" name="Days[]" value="Tuesday">Tuesday <br> <input type="checkbox" name="Days[]" value="Wednesday">Wednesday<br> <input type="checkbox" name="Days[]" value="Thursday">Thursday <br> <input type="checkbox" name="Days[]" value="Friday">Friday<br> <input type="checkbox" name="Days[]" value="Saturday">Saturday <br> <input type="submit" name="submit" value="submit"> </form> </body> </html> 

 <?php // Make a MySQL Connection mysql_connect("localhost", "root", "") or die(mysql_error()); mysql_select_db("test") or die(mysql_error()); $checkBox = implode(',', $_POST['Days']); if(isset($_POST['submit'])) { $query="INSERT INTO example (orange) VALUES ('" . $checkBox . "')"; mysql_query($query) or die (mysql_error() ); echo "Complete"; } ?> 

Вам нужно объявить массив в HTML через

 <input type="checkbox" name="Days[]" value="Daily"> 

Также вы можете вставить несколько элементов с одним запросом, подобным этому

 $query = "INSERT INTO example (orange) VALUES "; for ($i=0; $i<count($checkBox); $i++) $query .= "('" . $checkBox[$i] . "'),"; $query = rtrim($query,','); mysql_query($query) or die (mysql_error() ); 

Также имейте в виду, что функции mysql_* официально устарели и поэтому не должны использоваться в новом коде. Вместо этого вы можете использовать PDO или MySQLi. См. Этот ответ на SO для получения дополнительной информации.

Я думаю, это должно сработать .. 🙂

 <input type="checkbox" name="Days[]" value="Daily">Daily<br> <input type="checkbox" name="Days[]" value="Sunday">Sunday<br>