一次检索特定ID

时间:2013-12-27 08:52:15

标签: php mysql

我有一个名为users且有user_id的表格,以及一个名为groups且表格group_iduser_id is a foreign key的表users's来自user_id $query_groups = mysql_query("SELECT * FROM groups"); while ($rows_g = mysql_fetch_assoc($query_groups)) { $g_user_id = $rows_g['user_id']; $query_users = mysql_query("SELECT * FROM users WHERE user_id='$g_user_id'"); while ($rows_u = mysql_fetch_assoc($query_users)) { echo $rows_u['user_id']; } } 的引用。情况如下:如果用户加入了一个组,则将他/她的user_id插入到表组中。因此,如果用户加入了两个不同的组,表'groups'中的列'user_id'将插入两个或多个相同的user_id。好吧,我只想带上user_id一次,要么他/她加入了两个或更多组......

我不知道如何在没有得到相同的user_id的情况下正确循环它....我只想让它循环一次......

{{1}}

2 个答案:

答案 0 :(得分:0)

按如下方式更改您的代码:

$query_groups = mysql_query("SELECT user_id FROM groups LEFT JOIN users ON users.user_id = groups.user_id GROUP BY groups.user_id");
while($rows = mysql_fetch_assoc($query_groups))
{
           echo $rows['user_id'];

}

答案 1 :(得分:0)

您正在使用$rows_g,但该变量在第一个while循环中为namend $rows

错:

$g_user_id = $rows_g['user_id'];

正确:

$g_user_id = $rows['user_id'];

但是尝试使用连接表,因为这是获取所需数据的低效方法。 在您的情况下,您应该使用LEFT JOIN。