我正在为我的代码苦苦挣扎。我尝试制作新闻提要。新闻提要运行良好,但现在我想在每个新闻行中添加头像图片以获取作者的图片。头像图片路径在不同的表中(users)。这意味着我需要获取特定用户 ID ( $row['uid']) 的循环,并且使用该 uid 我需要从user表中的用户头像获取相关路径。如果我尝试在循环中使用查询,它只会显示一个结果,而不是查询中指定的 6 个结果。你有什么建议或建议我如何解决这个问题吗?非常感谢您的支持!这是我目前的尝试: <div class="timeline p-4 block mb-4"> <?php // Getting the user id and the feedmessage from Table "activity_feed" $statement = $pdo->prepare("SELECT feed_message, uid FROM activity_feed WHERE cid = :cid ORDER BY id DESC LIMIT 6"); $result = $statement->execute(array('cid' => $cid)); $count = 1; while($row = $statement->fetch()) { // Starting the News feed Loop ?> <?php // This will repeat now X times as defined in the query above by = LIMIT ? // Getting the avatar path from the user table $statement = $pdo->prepare("SELECT avatar FROM users WHERE id = :id"); $result = $statement->execute(array('id' => $row['uid'])); $user_avatar = $statement->fetch(); ?> <style> #circle_feed { height:50px; width:50px; border-radius:50%; /* Including the avatar path from query above*/ background-image: url("<?php echo $user_avatar['avatar']; ?>"); background-position:center; background-size:cover; } </style>
1 回答
qq_笑_17
TA贡献1818条经验 获得超7个赞
没有必要循环。joinSQL 是一种基于集合的语言,可以使用以下语法在单个查询中为您提供所需的结果:
SELECT
af.feed_message,
af.uid,
u.avatar
FROM activity_feed af
INNER JOIN users u ON u.id = af.uid
WHERE af.cid = :cid
ORDER BY af.id DESC
LIMIT 6
这比运行 7 个查询(一个用于活动提要,然后一个用于 PHP 循环中第一个查询返回的每一行)要高效得多。
然后您可以获取结果集的行并直接在您的应用程序中使用它。
- 1 回答
- 0 关注
- 69 浏览
添加回答
举报
0/150
提交
取消