我有这样的类别表
表名:个性
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>}?>
如何将个性表类别发布到具有多个类别的其他表中?
以下是结果示例: 表名:人
name | usr_char
abby | cute,rich,funny
andy | famous,funny
答案 0 :(得分:0)
创建另一个名为people_personality
的表,其中包含以下内容:
id
&lt; - 您的主键person_id
&lt; - 来自您&#34; People&#34;的主键表personality_id
&lt; - 来自您&#34; Personality&#34;的主键表假设您有People
表:
id - name
1 - abby
2 - andy
现在您要指定abby
cute
,rich
和funny
:
INSERT INTO people_personality VALUES ('',1,1),('',1,2),('',1,3)
答案 1 :(得分:0)
如果你在输入元素上缺少一个名字。
<input type='checkbox' id='usr_char' name='attribute[]' checked value='$data[category]'>
之后在获取更新人员表的值时,您只需使用
$attributes = implode(",", $_POST["attribute"]);
答案 2 :(得分:0)
我的建议是不要尝试在SQL字段中存储多个逗号分隔值。它有许多缺点,包括
所以,改为使用many-to-many link table.例如,您可以这样使用表格:
表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');