PHP: добавьте несколько значений флажков в один столбец MySQL

Я хочу написать простую функцию PHP, чтобы вставить значения 10 и 20 флажков. Теперь проблема заключается в следующем: следует ли вставлять все значения в один столбец таблицы MySQL или я должен идти с отдельной таблицей?

Моя основная цель – вставить значения нескольких флажков в MySQL и затем обновить их. Если я проверил 7 флажков, а через некоторое время я хочу обновить от 7 до 5, как он будет удалять значения из столбца таблицы?

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

Вот HTML, который я имею

<form method="post" action=""> Games You Like: <br/> <input type="checkbox" name="games[]" value="1"><label>Football</label><br> <input type="checkbox" name="games[]" value="2"><label>Basket Ball</label><br> <input type="checkbox" name="games[]" value="3"><label>Pool</label><br> <input type="checkbox" name="games[]" value="4"><label>Rugby</label><br> <input type="checkbox" name="games[]" value="5"><label>Tennis</label><br> <input type="checkbox" name="games[]" value="6"><label>Cricket</label><br> <input type="checkbox" name="games[]" value="7"><label>Table Tennis</label><br> <input type="checkbox" name="games[]" value="8"><label>Hockey</label><br> <input type="submit" name="submit" value="submit"> </form> 

Попробуйте весь этот пример,

Структура таблицы

 CREATE TABLE IF NOT EXISTS `games` ( `id` int(12) NOT NULL AUTO_INCREMENT, `game_name` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1; 
 <?php include_once("yourconfig.php"); //include your db config file extract($_POST); $check_exist_qry="select * from games"; $run_qry=mysql_query($check_exist_qry); $total_found=mysql_num_rows($run_qry); if($total_found >0) { $my_value=mysql_fetch_assoc($run_qry); $my_stored_game=explode(',',$my_value['game_name']); } if(isset($submit)) { $all_game_value = implode(",",$_POST['games']); if($total_found >0) { //update $upd_qry="UPDATE games SET game_name='".$all_game_value."'"; mysql_query($upd_qry); } else { //insert $ins_qry="INSERT INTO games(game_name) VALUES('".$all_game_value."')"; mysql_query($ins_qry); } } ?> <form method="post" action=""> Games You Like: <br/> <input type="checkbox" name="games[]" value="1" <?php if(in_array(1,$my_stored_game)){echo "checked";}?>><label>Football</label><br> <input type="checkbox" name="games[]" value="2" <?php if(in_array(2,$my_stored_game)){echo "checked";}?>><label>Basket Ball</label><br> <input type="checkbox" name="games[]" value="3" <?php if(in_array(3,$my_stored_game)){echo "checked";}?>><label>Pool</label><br> <input type="checkbox" name="games[]" value="4" <?php if(in_array(4,$my_stored_game)){echo "checked";}?>><label>Rugby</label><br> <input type="checkbox" name="games[]" value="5" <?php if(in_array(5,$my_stored_game)){echo "checked";}?>><label>Tennis</label><br> <input type="checkbox" name="games[]" value="6" <?php if(in_array(6,$my_stored_game)){echo "checked";}?>><label>Cricket</label><br> <input type="checkbox" name="games[]" value="7" <?php if(in_array(7,$my_stored_game)){echo "checked";}?>><label>Table Tennis</label><br> <input type="checkbox" name="games[]" value="8" <?php if(in_array(8,$my_stored_game)){echo "checked";}?>><label>Hockey</label><br> <input type="submit" name="submit" value="submit"> </form> 

это просто базовый пример и запрос, который я добавил в этом примере, вы можете узнать из этого базового примера, и я думаю, что это очень полезно для вас … если полезно, чем дать правильный ответ для этого решения

Сохраненная продукция Db

Выход формы

использовать функцию implode для преобразования возвращенного массива в строку, а затем вставить его в базу данных как обычно

 if(isset($_POST['submit'])){ $result = implode(",",$_POST['games']); 

}

надеюсь, это поможет вам. С уважением Имран Касим

Я ввел имя игры в скобки и изменил их значения на true:

 <form method="post" action=""> Games You Like: <br/> <input type="checkbox" name="games[Football]" value="true"><label>Football</label><br> <input type="checkbox" name="games[Basket]" value="true"><label>Basket Ball</label><br> <input type="checkbox" name="games[Pool]" value="true"><label>Pool</label><br> <input type="checkbox" name="games[Rugby]" value="true"><label>Rugby</label><br> <input type="checkbox" name="games[Tennis]" value="true"><label>Tennis</label><br> <input type="checkbox" name="games[Cricket]" value="true"><label>Cricket</label><br> <input type="checkbox" name="games[Table]" value="true"><label>Table Tennis</label><br> <input type="checkbox" name="games[Hockey]" value="true"><label>Hockey</label><br> <input type="submit" name="submit" value="submit"> </form> 

После представления это приведет к следующему массиву:

 $_POST["games"] = Array ( [Tennis] => true [Cricket] => true [Table] => true ) // all other values false 

Вы можете легко сохранить и обработать этот массив, если сохраните его как строку JSON в своей базе данных. Для этого вам нужен один столбчик varchar или text.

 json_encode($_POST["games"]) // {"Tennis":"true","Cricket":"true","Table":"true"} 

Попробуйте это

 <?php if(isset($_POST['submit'])) { //in here you get games array $mygames = $_POST['games']; } ?> <form method="post" action=""> Games You Like: <br/> <input type="checkbox" name="games[]" value="1"><label>Football</label><br> <input type="checkbox" name="games[]" value="2"><label>Basket Ball</label><br> <input type="checkbox" name="games[]" value="3"><label>Pool</label><br> <input type="checkbox" name="games[]" value="4"><label>Rugby</label><br> <input type="checkbox" name="games[]" value="5"><label>Tennis</label><br> <input type="checkbox" name="games[]" value="6"><label>Cricket</label><br> <input type="checkbox" name="games[]" value="7"><label>Table Tennis</label><br> <input type="checkbox" name="games[]" value="8"><label>Hockey</label><br> <input type="submit" name="submit" value="submit"> </form> 

Во-первых, очень прямо, я предпочитаю делать такие имена из разных флажков

 BasketBall;Cricket;Tennis 

Вы можете это сделать

 implode(";",$array); 

а затем напишите, что в таблице mySQL …

Чтобы получить эти значения Просто используйте

 $array = explode(";",$urVariable); 

Для разных значений используйте

 numberOne = $array[1]; // returns Cricket 

изменить любое значение Использовать Просто получить значения и переписать в ";" сформировать ..

Мне это нравится, так как это просто реализовать и отлично выполнять работу!