我有一个存储在数据库中的服务列表,用户需要检查。该列表定期更新。 它们存储在表“服务”中,如下所示:
|id|service|
| 1|foo |
| 2|bar |
当用户选中复选框时,我会将ID值存储在“人员”表中的“服务”单元格中。
$services = mysql_real_escape_string(implode(',', $_POST['services']));
$update = mysql_query("UPDATE people SET services='$services' WHERE id='$id'")
or die(mysql_error());
直到这里一切正常。
现在,我想从表“services”列出我的所有服务,并与用户单元“services”中的服务和用户单元格中的服务进行交叉检查。
最终的回声应该是这样的。
<label>$service</label>
<input name="services[]" type="checkbox" id="services[]" value="$id" $checked>
有人可以帮我这个吗? 谢谢!
P.S:我试图在http://corpocrat.com/2009/05/24/how-to-store-and-retreive-checkbox-value-in-mysql-with-php/之后制作它,但我无法回应标签,然后我把它搞砸了
答案 0 :(得分:0)
我不确定我能否理解你的意思。我希望我能。否则,请评论此帖...
您最好创建一个更好的数据库结构。
tbl_users tbl_services tbl_assign
+-------------+ +-------------+ +----------------+
| uid | name | | sid | title | | id | uid | sid |
+-------------+ +-------------+ +----------------+
| | | | | | | | | |
+-------------+ +-------------+ +----------------+
在此结构中,您可以为每个用户指定一项或多项服务。 现在,您需要在tbl_assign中插入或删除记录,以向每个用户授予或撤消服务。
我希望你能做到。
答案 1 :(得分:0)
我终于做到了。 也许这不是我问题的最佳答案,但总比没有好。
$servicii_user = mysql_query("SELECT servicii FROM people WHERE id='$id'")
or die(mysql_error());
$ss = mysql_fetch_array($servicii_user);
$servicii_selectate = array();
$servicii_selectate= explode(',',$ss['servicii']);
$result = mysql_query("SELECT * FROM servicii")
or die(mysql_error());
while ($row = mysql_fetch_array($result)) {
if(in_array($row[0], $servicii_selectate)){
echo '<input name="servicii[]" type="checkbox" value="'.$row[0].'" CHECKED>'.$row[1].' ';
}else{
echo '<input name="servicii[]" type="checkbox" value="'.$row[0].'">'.$row[1].' ';
}
}