我目前在如何解决这个问题上遇到了一些问题:
我有2个表:users和user_project。对于每个项目(另一个表),负责项目的用户都存储在user_project表中。
现在我知道如何格式化输入的数据,并将所有内容存储在表格中,但我仍然坚持编辑项目。我一直坚持如何检查每个用户是否与项目相关联。
我应该得到一个这样的列表:
user 1: [ ]
user 2: [ ]
user 3: [x]
user 4: [ ]
user 5: [x]
user 6: [ ]
这就是我至少要让负责的用户:
$sql = mysql_query("SELECT * FROM `users`");
while ($row = mysql_fetch_array($sql)) {
$sql2 = mysql_query("SELECT * FROM `user_project` WHERE `uid` = '". $row['id'] ."' AND `pid` = '". $pid ."'");
while ($row2 = mysql_fetch_assoc($sql2)) {
if ($row['id'] == $row2['uid']) {
echo '<input name="assignee[]" type="checkbox" value="'. $row['id'] .'" checked="checked"><span class="smaller">'. $row['email'] .'</span><br>';
}
}
}
答案 0 :(得分:0)
你可以这样做:
$sql = mysql_query("SELECT * FROM `users`");
while ($row = mysql_fetch_array($sql)) {
$sql2 = mysql_query("SELECT count(*) FROM `user_project` WHERE `uid` = '". $row['id'] ."' AND `pid` = '". $pid ."'");
$row2 = mysql_fetch($sql2);
// Is the user assigned?
if (($row2 !== false) && ($row2[0] > 0)) {
// Yes he is
echo '<input name="assignee[]" type="checkbox" value="'. $row['id'] .'" checked="checked"><span class="smaller">'. $row['email'] .'</span><br>';
}
else {
// No he is not
echo '<input name="assignee[]" type="checkbox" value="'. $row['id'] .'"><span class="smaller">'. $row['email'] .'</span><br>';
}
}
对于每个用户,您可以选择分配数量。这应该是0或1.有更优雅的解决方案(如使用@gontrollez建议的连接),但这应该做的伎俩,只是你想出的一点点变化