当我想在另一列中获得特定行时如何正确使用联接

时间:2018-12-01 08:52:45

标签: php mysqli backend

我有两列,其中一列是(用户),另一列是(user_messages)。 现在,我只想获取在用户内部具有“未读”名称的用户(user_messages)。

$user="select * from users LEFT OUTER JOIN user_messages.msg_seen='unreaden' ON users.id=user_messages.m_id";

在那之后,只需对它们进行计数,然后在mysqli num_rows的帮助下,将它们的数量放在brauser中的用户名旁边。查询后,当我检查它时,它给我布尔值(false)。我认为问题出在查询上。您可以检查我的联接代码是否存在错误吗?

1 个答案:

答案 0 :(得分:0)

一个简单的解决方案应如下所示。

$link = mysqli_connect("localhost", "my_user", "my_password", "world");

$query = "select users.name as user_name, count(user_messages.id) as no_of_unread_messages "
        ." from users LEFT OUTER JOIN user_messages ON ( users.id = user_messages.user_id AND user_messages.msg_seen='unreaden')";

if ($result = mysqli_query($link, $query)) {

    while ($row = mysqli_fetch_assoc($result)) {

        echo $row["user_name"]." ". $row["no_of_unread_messages"];

    }

    mysqli_free_result($result);
}