PHP中的MySQL查询与输出
我有两个表,我想知道groupid=1中有多少用户,并将该组中的所有成员打印到一个数组中PHP中的MySQL查询与输出,php,mysql,Php,Mysql,我有两个表,我想知道groupid=1中有多少用户,并将该组中的所有成员打印到一个数组中 groups table userid groupid 1 1 2 1 3 1 4 2 5 2 users table userid name 1 tom 2
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_列表数组?有什么想法吗?你可以这样做:
while($row = mysql_fetch_array($result)){
printf ("ID: %s Name: %s", $row[0], $row["name"]);
}
或
/*每次它获取行时,都会将其添加到数组中*/
而($r[]=mysql_fetch_数组($sql));
回声“;
//=将$r打印为数组=================//
印刷费($r);
//=============================//
回声“;
您拥有以下代码:
$member_list = array();
while($row = mysql_fetch_array($result)){
$member_list[$row['userid']] = $row['name'];
}
这会将$row设置为查询中某一行的值,然后将其丢弃并替换为下一个值。在移动到下一行之前,需要保存该信息。试试这个:
$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);
之后,您将所有成员都放入
$member_list
中,您可以使用print_r()进行迭代,获取特定成员的数据,或者其他任何您想要的内容 这样做:
$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"];
}
}
试试这个。我还没有测试过,但我认为它会起作用
您的查询显示
grouped
是否应该是groupid
?我不需要打印出来,但需要添加到$member\u列表中$成员列表=数组();
$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);
$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"];
}
}