我有2个表,我想知道groupid = 1中有多少用户,并将该组中的所有成员打印成一个数组。
groups table
userid groupid
1 1
2 1
3 1
4 2
5 2
users table
userid name
1 tom
2 tracy
3 dave
4 connie
5 tim
$query "SELECT COUNT(userid) FROM `groups` WHERE `grouped`=`1`";
$result=mysql_query($query);
$row = mysql_fetch_array($result);
$num_users;
$num_users=$row['COUNT(userid)'];
while($row = mysql_fetch_array($result)){
}
$member_list;
$member_list={
//key(userid) value(name)
'1'=>'tom',
'2'=>'tracy',
'3'=>'dave'
}
我不知道如何使用上面显示的数据获取$ member_list数组?任何想法?
答案 0 :(得分:1)
你有代码:
while($row = mysql_fetch_array($result)){
}
这会将$ row设置为查询中其中一行的值,然后将其抛出并将其替换为下一个值。您需要在移动到下一行之前保存该信息。试试这个:
$member_list = array();
while($row = mysql_fetch_array($result)){
$member_list[$row['userid']] = $row['name'];
}
之后,您拥有$member_list
中的所有成员,您可以迭代它,使用print_r(),获取特定成员的数据或其他任何您想要的内容。
答案 1 :(得分:1)
做这样的事情:
$sql = "select groups.id, user.id, user.name from groups INNER JOIN users ON groups.userid = users.userid where groupid = 1";
$query = mysql_query($sql);
if(mysql_num_rows($query) > 0 ) {
$users = array();
while($fields = mysql_fetch_assoc($query)) {
$users[$fields['user_id']] = $fields['name'];
}
}
print_r($users);
答案 2 :(得分:1)
试试这个。我没有测试过,但我认为它会起作用。
$query = "SELECT userid FROM groups WHERE groupid='1'";
$result = mysql_query($query);
while($row = mysql_fetch_array($result)) {
$userids[] = $row["userid"];
}
$query = "SELECT * FROM users";
$result = mysql_query($query);
while ($row = mysql_fetch_array($result)) {
if (in_array($row["userid"], $userids) {
$users[$row["userid"]] = $row["name"];
}
}
答案 3 :(得分:0)
你可以这样做:
while($row = mysql_fetch_array($result)){
printf ("ID: %s Name: %s", $row[0], $row["name"]);
}
OR
/*everytime it fetches the row, adds it to array...*/
while($r[]=mysql_fetch_array($sql));
echo "<pre>";
//= Prints $r as array =================//
print_r ($r);
//=============================//
echo "</pre>";