PHP:将多个复选框值插入一个MySQL列

我想写一个简单的PHP函数来插入10和20复选框的值。 现在,问题是:我应该在MySQL表的单个列中插入所有值,还是应该使用单独的表?

我的主要目标是将多个复选框的值插入MySQL,然后更新它们。 如果我检查了7个复选框,并且在一段时间后我想要从7更新到5,它将如何从表列中删除值?

请帮我一些简单的PHP示例和我应该添加什么类型的MySQL字段,因为我想插入复选框值应该在数字和其他字段中的复选框的标签。

这是我的HTML

Games You Like:








试试这整个例子,

表结构

 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; 
 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); } } ?> 
Games You Like:
>
>
>
>
>
>
>
>

这只是我在这个例子中添加的基本示例和查询,您可以从这个基本示例中学习,我认为这对您非常有用…如果有用,请为此解决方案提供正确答案

Db表存储输出

表格输出

使用implode函数将返回的数组转换为字符串,然后将其插入数据库中

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

}

希望这会对你有所帮助。 关心Imran Qasim

我将游戏名称放入括号中并将其值更改为true:

 
Games You Like:








提交后,这将导致如下数组:

 $_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"} 

请你试试这个

  
Games You Like:








首先非常直截了当,我更喜欢从不同的复选框做这样的名字

 BasketBall;Cricket;Tennis 

你可以做到这一点

 implode(";",$array); 

然后在mySQL表中写一下……

要获得这些价值,请使用

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

对于不同的值使用

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

更改任何值使用只需获取值并重写“;” 形成..

我喜欢这个,因为它很容易实现并完美地完成工作!