我正在尝试选择在成员表中指定的用户已注册的组
并在用户所属的所有组的页面上显示更新,但是每次用户不断显示已创建的每个组的更新时,即使它们不是成员。因此,如何确保仅显示用户加入这些更新的组?
到目前为止,这是我的查询:
$select_posts_from_groups_query = $db->query("SELECT spud_groups_posts.post_body,spud_groups_posts.group_url,spud_groups_members.member_name
FROM spud_groups_posts LEFT JOIN spud_groups_members ON spud_groups_posts.post_body = spud_groups_members.member_name");
while($select_posts_from_groups_array = $db->fetch_array($select_posts_from_groups_query)) {
$group_url_id = $select_posts_from_groups_array['group_url'];
$post_body = $select_posts_from_groups_array['post_body'];
$select_group_data_from_posts_query = $db->query("SELECT * FROM spud_groups WHERE gid='$group_url_id'");
$select_group_data_from_posts_array = $db->fetch_array($select_group_data_from_posts_query);
$group_name_data = $select_group_data_from_posts_array['group_name'];
#$group_name_data = false;
echo "<div class='mx'>
<p> <h2> $group_name_data </h2></p>
$post_body</div>
<br>
";
}
从来没有做过SQL连接,这就是为什么。
最佳答案
首先,一个好的做法是使用别名,以使您的代码看起来更好
SELECT
gr.post_body,
gr.group_url,
mem.member_name
FROM
spud_groups_posts gr
LEFT JOIN spud_groups_members mem ON
gr.post_body = mem.member_name
该查询将为您提供表
spud_groups_posts
中的所有结果以及spud_groups_members
中的匹配结果。您应将LEFT JOIN替换为JOIN或INNER JOIN(相同的结果)。
正如您在评论中提到的那样,您的ResultSet为空-这意味着您在表
post_body
中的列spud_groups_posts
和列中的member_name
中都没有匹配的值spud_groups_members
关于php - 加入才能识别仅注册的组?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26159763/