繁体   English   中英

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

[英]SELECT data from multiple tables PHP/Mysql

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

我有3个表: usersuser_notificationuser_comments

当我单击图标以查看通知时,我只希望将新通知显示为下拉列表,因此在user_notification表中,行“ status”id_fromid_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");

该代码不起作用,我在做错什么吗? (我不是专家)我是否缺少表之间的关系?

任何提示将不胜感激,谢谢。

我最终可以解决我的问题,逐步获取数据以了解其工作原理并最终获得此代码(不确定这是否是一种好习惯,但可以成功):

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM