从多个表中选择数据PHP / Mysql

时间:2017-04-24 20:56:08

标签: php mysql

我正在尝试从多个表中获取数据以构建通知Feed。

我有3个表:用户 user_notification user_comments

当我点击图标查看通知时,我想只显示新的下拉列表,因此在 user_notification 表格中我有行“status” id_from id_owner ,可以是“new”“old”,这样我知道什么要检索,但是当我需要从那些通知中获取有关它的信息并且能够显示例如,个人资料图片,用户名,comment_id等时,我的问题就出现了。

这是我想要的HTML:

while ($row_notification = $result_load_notifications->fetch_assoc()) {

            echo '<li class="dropdown-item">
                    <img src="'.$row_notification["avatar"].'" class="avatar-feed" alt="'.$row_notification["name"].'" /><p><strong>'.$row_notification["name"].'</strong> new <a href="https://sample.com/user/'.$_SESSION['alias'].'/#comment-'.$row_notification["id_comment"].'">comment</a> notification.<br>
                    <time class="date-post" datetime="'.$row_notification["date"].'"></time></p>
                    </li>';
            echo '<li class="dropdown-divider"></li>';

        }

这是PHP / Mysqli,我认为可以工作,但没有:

SELECT
    *
FROM
    user_notification n,
    users u,
    user_comments c
WHERE
    n.status='new'
    AND
    n.id_owner=$session_id
    AND
    u.id_user=n.id_from
    AND
    c.id_owner=n.id_owner

在PHP中:

$load_notifications = mysqli_query($conn, "SELECT * user_notification n, users u, user_comments c WHERE n.status='new' AND n.id_owner=$session_id AND u.id_user=n.id_from AND c.id_owner=n.id_owner");

那段代码不起作用,我做错了什么? (我不是专家)我错过了表之间的关系吗?

任何提示都会很感激, 感谢。

1 个答案:

答案 0 :(得分:0)

我终于可以解决我的问题,逐步检索数据以了解这项工作是如何工作的,并最终得到了这段代码(不确定它是否是一个好的做法,但它有效):

SELECT 
u.name, u.avatar, c.id_comment, c.date 
FROM user_notification n, users u, user_comments c 
WHERE n.id_owner = ? 
AND n.notification_status = ? 
AND u.id_user = n.id_from 
AND c.id_user= n.id_from 
AND c.id_owner = n.id_owner