我正在尝试从多个表中获取数据以构建通知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");
那段代码不起作用,我做错了什么? (我不是专家)我错过了表之间的关系吗?
任何提示都会很感激, 感谢。
答案 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