检索某些用户的复选框状态
Retrieve checkbox state for certain users
我目前有一些关于如何解决这个问题的问题:
我有 2 个 table:用户和 user_project。对于每个项目(另一个 table)负责一个项目的用户存储在 user_project table.
现在我知道如何格式化输入的数据,以及如何将所有内容存储在 table 中,但我仍然停留在编辑项目上。我坚持如何检查每个用户是否链接到项目。
我应该得到这样的列表:
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>';
}
}
}
你可以这样做:
$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>';
}
}
您为每个用户select分配的数量。这应该是 0 或 1。有更优雅的解决方案(比如使用 @gontrollez 建议的连接),但这应该可以解决问题,并且只是您提出的方案的微小变化
我目前有一些关于如何解决这个问题的问题:
我有 2 个 table:用户和 user_project。对于每个项目(另一个 table)负责一个项目的用户存储在 user_project table.
现在我知道如何格式化输入的数据,以及如何将所有内容存储在 table 中,但我仍然停留在编辑项目上。我坚持如何检查每个用户是否链接到项目。
我应该得到这样的列表:
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>';
}
}
}
你可以这样做:
$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>';
}
}
您为每个用户select分配的数量。这应该是 0 或 1。有更优雅的解决方案(比如使用 @gontrollez 建议的连接),但这应该可以解决问题,并且只是您提出的方案的微小变化