使用foreach查询PHP


Using foreach for query PHP

如何从我关注的用户那里获得帖子?我有这个代码

<?php
    $query=$con->query("SELECT Following FROM followers WHERE Follower='$Name'");
    while ($row=$query->fetch_row()){
        $Follower=$row[0];
        $query2=$con->query("SELECT Image,`Text` FROM uploads WHERE Username='$Follower'");
    } 
    while ($row2=$query2->fetch_row()) {
        $Image=$row2[0];
        $Text=$row2[1];
        $Likes=$row2[2];
        $Comments=$row2[3];
        $Reposts=$row2[4];
?>
        <div class="PF">  
            <img src="../users/<?php echo $roww[0] ?>" class="FollowerPic">
            <span><?php echo $Follower?></span>
        </div>
<?php
    }
?>

但它不起作用,它只给我最后一个用户的帖子

这样试试。把第二个"while"放进第一个。

<?php
            $query=$con->query("SELECT Following FROM followers WHERE Follower='$Name'");
                    while ($row=$query->fetch_row()){
                        $Follower=$row[0];
                        $query2=$con->query("SELECT Image,`Text` FROM uploads WHERE Username='$Follower'");

                       while ($row2=$query2->fetch_row()) {
                           $Image=$row2[0];
                           $Text=$row2[1];
                           $Likes=$row2[2];
                           $Comments=$row2[3];
                           $Reposts=$row2[4];

                           ?>
                           <div class="PF">
                               <img src="../users/<?php echo $roww[0] ?>" class="FollowerPic">
                               <span><?php echo $Follower?></span>
                           </div>
                           <?php
                       }
                    }
?>

但无论如何,最好在1个查询(LEFT JOIN)中使用它

LEFT JOIN示例;

<?php
            $sql = "SELECT * FROM followers AS f LEFT JOIN uploads AS u ON  f.Following = u.Username WHERE f.Follower='$Name' ORDER BY u.date LIMIT 0,250";
            $query=$con->query($sql);
            echo '<pre>';
            while ($row=$query->fetch_row()){
                print_r($row);
            }
            echo '</pre>';
?>

试试这个,第二个循环应该放在第一个循环中。

<?php
    $query=$con->query("SELECT Following FROM followers WHERE Follower='$Name'");
    while ($row=$query->fetch_row()){
        $Follower=$row[0];
        $query2=$con->query("SELECT Image,`Text` FROM uploads WHERE Username='$Follower'");

        while ($row2=$query2->fetch_row()) {
            $Image=$row2[0];
            $Text=$row2[1];
            $Likes=$row2[2];
            $Comments=$row2[3];
            $Reposts=$row2[4];

            ?>
            <div class="PF">
                <img src="../users/<?php echo $roww[0] ?>" class="FollowerPic">
                <span><?php echo $Follower?></span>
            </div>
            <?php
        }
    }
?>
<?php
        $query=$con->query("SELECT Following FROM followers WHERE Follower='$Name'");
                while ($row=$query->fetch_row()){
                  $Follower=$row[0];
                  $query2=$con->query("SELECT Image,`Text` FROM uploads WHERE Username='$Follower'");
               while ($row2=$query2->fetch_row()) {
                 $Image=$row2[0];
                 $Text=$row2[1];
                 $Likes=$row2[2];
                 $Comments=$row2[3];
                 $Reposts=$row2[4];

  ?>
    <div class="PF">  
                  <img src="../users/<?php echo $Image ?>" class="FollowerPic">
                  <span><?php echo $Follower?></span>
                </div>
    <?php
                    }
   }
  ?>

试试这个