0

phpbb3 のグループ メンバーとグループ リーダーを外部ページに表示しようとしています。すべてのメンバーを正常に表示できますが、代わりに、phpbb3 グループ リストが示すようにグループ リーダーを一番上に表示するか、ユーザー名を太字で、できれば最初のユーザー名に表示します。

現時点で私が持っているものは次のとおりです。

$sql = "SELECT phpbb_users.user_id, phpbb_user_group.group_id, phpbb_users.username, phpbb_profile_fields_data.pf_country, phpbb_profile_fields_data.pf_class  FROM phpbb_users, phpbb_profile_fields_data, phpbb_user_group WHERE phpbb_user_group.group_id IN(23) AND phpbb_users.user_id = phpbb_profile_fields_data.user_id AND phpbb_users.user_id = phpbb_user_group.user_id ORDER BY phpbb_users.username";

その後、グループリーダーをそこに含めると、グループ全体ではなくグループリーダーのみがフィルタリングされるため、どうすればよいかわかりません。

4

1 に答える 1

0

次のクエリを使用します。

$sql = "SELECT phpbb_users.user_id, phpbb_user_group.group_id, phpbb_users.username, phpbb_profile_fields_data.pf_country, phpbb_profile_fields_data.pf_class, phpbb_user_group.group_leader FROM phpbb_users, phpbb_profile_fields_data, phpbb_user_group WHERE phpbb_user_group.group_id IN(23) AND phpbb_users.user_id = phpbb_profile_fields_data.user_id AND phpbb_users.user_id = phpbb_user_group.user_id ORDER BY group_leader, phpbb_users.username";

これにより、リストの最後にもう 1 列が追加phpbb_user_group.group_leaderされ、その列で並べ替えられ、次にusername. この列に が含まれている場合1、その人はグループ リーダーです。が含まれている場合、0それらは単なる通常のグループ メンバーです。

出力例:

+---------+----------+----------------+--------------+--------------+--------------+
| user_id | group_id | username       | pf_country   | pf_class     | group_leader |
+---------+----------+----------------+--------------+--------------+--------------+
|     123 |       23 | Person 3       |           US |           12 |            1 |
|     543 |       23 | Person 1       |           UK |           13 |            0 |
|     714 |       23 | Person 2       |           DE |           01 |            0 |
+---------+----------+----------------+--------------+--------------+--------------+
于 2013-05-17T13:30:22.010 に答える