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

我正在为我的代码苦苦挣扎。我尝试制作新闻提要。


新闻提要运行良好,但现在我想在每个新闻行中添加头像图片以获取作者的图片。头像图片路径在不同的表中(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>

                               

潇潇雨雨
浏览 70回答 1
1回答

qq_笑_17

没有必要循环。joinSQL 是一种基于集合的语言,可以使用以下语法在单个查询中为您提供所需的结果:SELECT&nbsp;&nbsp; &nbsp; af.feed_message,&nbsp;&nbsp; &nbsp; af.uid,&nbsp; &nbsp; u.avatarFROM activity_feed afINNER JOIN users u ON u.id = af.uidWHERE af.cid = :cid&nbsp;ORDER BY af.id DESC&nbsp;LIMIT 6这比运行 7 个查询(一个用于活动提要,然后一个用于 PHP 循环中第一个查询返回的每一行)要高效得多。然后您可以获取结果集的行并直接在您的应用程序中使用它。
打开App,查看更多内容
随时随地看视频慕课网APP