[英]Updating SQL with multiple categories and checkbox (PHP)
我有这样的类别表
表名:个性
id | Category
1 | cute
2 | rich
3 | stupid
4 | funny
5 | famous
我要做的就是为此性格表选中带有php的复选框选项,并更新具有多个类别的其他表
和我的表格:
<form>
Name : <input name="user" type="text" id="user" value="<?php echo $line['user'];?>" />
Personality : <?php $personality=mysql_query("select * from personality");
while($data=mysql_fetch_array($personality)){
$check = ($line['usr_char']==$data['category'])?"checked" : "";
<label for='$data[kategori]'>
<input type='checkbox' id='usr_char' checked value='$data[category]'>
<span class='custom checkbox $check'></span> $data[category]</label><br>}?>
如何将个性表的类别发布到具有多个类别的其他表中?
这是结果的示例:表名称:people
name | usr_char
abby | cute,rich,funny
andy | famous,funny
使用以下people_personality
创建另一个名为people_personality
表:
id
<-您的主键 person_id
<-您的“人”表中的主键 personality_id
<-您的“ Personality”表中的主键 假设您的People
表中有:
id - name
1 - abby
2 - andy
现在,您要为abby
分配cute
, rich
和funny
:
INSERT INTO people_personality VALUES ('',1,1),('',1,2),('',1,3)
对于一个,您在输入元素上缺少名称。
<input type='checkbox' id='usr_char' name='attribute[]' checked value='$data[category]'>
之后,要获取值以更新您的人员表,只需使用
$attributes = implode(",", $_POST["attribute"]);
我的建议是不要尝试在SQL字段中存储多个逗号分隔的值 。 它有很多缺点,包括:
因此,改为使用多对多链接表。 例如,您可以通过以下方式创建表:
表格1:
Id | Category
1 | cute
2 | rich
3 | stupid
4 | funny
5 | famous
表2:
Name | Usr_char
abby | cute
abby | rich
abby | funny
andy | famous
andy | funny
有了这种方式,例如,以后添加字符,删除字符甚至选择字符就变得更加容易。
要检索:
SELECT * FROM table_name WHERE Name = 'abby';
加上:
INSERT INTO table_name (Name, Usr_char) VALUES ('abby', 'cute');
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.