PHP中的MySQL查询与输出

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

我有两个表,我想知道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_列表数组?有什么想法吗?

你可以这样做:

   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"];
    }
}