为了账号安全,请及时绑定邮箱和手机立即绑定

循环(行)查询中的另一个 SQL 查询

循环(行)查询中的另一个 SQL 查询

PHP
潇潇雨雨 2022-12-23 15:31:59
我正在为我的代码苦苦挣扎。我尝试制作新闻提要。新闻提要运行良好,但现在我想在每个新闻行中添加头像图片以获取作者的图片。头像图片路径在不同的表中(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 循环中第一个查询返回的每一行)要高效得多。


然后您可以获取结果集的行并直接在您的应用程序中使用它。


查看完整回答
反对 回复 2022-12-23
  • 1 回答
  • 0 关注
  • 56 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信