[英]SELECT data from multiple tables PHP/Mysql
我正在尝试从多个表中获取数据以构建通知供稿。
我有3个表: users , 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");
该代码不起作用,我在做错什么吗? (我不是专家)我是否缺少表之间的关系?
任何提示将不胜感激,谢谢。
我最终可以解决我的问题,逐步获取数据以了解其工作原理并最终获得此代码(不确定这是否是一种好习惯,但可以成功):
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.