通过连接表获得每篇文章的作者姓名


Get author name on each post by joining tables

我在连接两个表时遇到问题。我希望所有的帖子都有他们的作者写在下面。

表用户-idUser、FirstName、LastName等。

表格帖子-idPost,主题,文本,Fk_user

Fk_user是指向idUser的外键。

我想在每个帖子下面写名字和姓氏。

我现在得到的只是每个帖子上一个人的名字和姓氏相同。

<section id="reviews" class="page-section bg-dark gradient-servquick">
    <div class="pb-0">
        <div class="container relative">
          <?php
              $query="SELECT * FROM post ORDER BY idPost DESC";
              $result=mysqli_query($connection,$query) or die (mysqli_error($connection));
              $getUser="SELECT post.idPost, post.Fk_user, user.FirstName, user.LastName FROM post INNER JOIN user ON post.Fk_user = user.idUser";
              $resultUser=mysqli_query($connection,$getUser) or die (mysqli_error($connection));
              $extractUser=mysqli_fetch_array($resultUser);
              while($extract=mysqli_fetch_array($result)): ?>
            <div class="row">
                <div class="col-md-8 col-md-offset-2 align-center">
                    <h3><?php echo $extract['Subject'] ?></h3>
                    <div class="review review-text mt-0">
                        <p>
                           <?php echo $extract['Text'] ?>
                        </p>
                        <footer class="review-author text-center">
                           <?php echo $extractUser['FirstName'], ' ', $extractUser['LastName'];  ?>
                        </footer>
                    </div>
                </div><!--End Col-->
            </div><!--End Row-->
            <hr class="style-one">
            <?php
              endwhile;
            ?>
        </div><!--End Container-->
    </div><!-- End Slide Item -->
</section><!-- End Testimonials Section -->

您的代码似乎有点乱。例如,你似乎仍然会查询两次帖子,一次是有作者的,一次没有作者的,然后只在帖子周围循环,而不是有作者的。以下内容应该有效,但没有经过测试,请注意差异。

<section id="reviews" class="page-section bg-dark gradient-servquick">
    <div class="pb-0">
        <div class="container relative">
          <?php
              $getPost="SELECT post.*, u.FirstName, u.LastName FROM post p INNER JOIN user u ON p.Fk_user = u.idUser";
              $resultPost=mysqli_query($connection,$getPost) or die (mysqli_error($connection));
              while($extract=mysqli_fetch_array($resultPost)): ?>
            <div class="row">
                <div class="col-md-8 col-md-offset-2 align-center">
                    <h3><?php echo $extract['Subject'] ?></h3>
                    <div class="review review-text mt-0">
                        <p>
                           <?php echo $extract['Text'] ?>
                        </p>
                        <footer class="review-author text-center">
                           <?php echo $extract['FirstName'], ' ', $extract['LastName'];  ?>
                        </footer>
                    </div>
                </div><!--End Col-->
            </div><!--End Row-->
            <hr class="style-one">
            <?php
              endwhile;
            ?>
        </div><!--End Container-->
    </div><!-- End Slide Item -->
</section><!-- End Testimonials Section -->