php - 在嵌套的 foreach 循环中使用嵌套查询

标签 php mysql sql loops

好吧,我的头撞在墙上大约 2 小时后,我需要帮助。我有一个基于用户“关注者”提取“评论”的查询。关注者有一个唯一的 ID,为了便于使用,可以说他们的 ID 是 4 和 5。查询返回所有关注者,因此可能不止两行。该查询创建了一个foreach,我想为每个执行此查询的“关注者”说。然后,该查询需要创建一个 fetch_assoc() 以便稍后可以在页面下方调用数据。我现在拥有代码的方式,它只显示来自关注者 4 而不是 5 的帖子。我尝试使用计数器来附加变量名称,这样它们就不会每次都被覆盖,但它没有帮助。非常感谢!

$sqlb ="SELECT myfriend_ID FROM friends WHERE my_id = '$myuid'";
$resultb = mysql_query($sqlb,$db);
$numa = mysql_num_rows($resultb);
if($numa)
{
    while(($follower = mysql_fetch_assoc($resultb))) {
        $followers[] = $follower;
    }
}
$i=0;
foreach($followers as $follower)
{
    $i++;
    $fnub = $follower['myfollower_ID'];//this will print 4 and 5
    $fnum = $fnub;

    $sql = "SELECT * FROM usr, feed, course WHERE usr.usr_id = '$fnum' AND 
             feed.usr_id = '$fnum' AND course.usr_id = '$fnum' ORDER BY Feed_ID desc";
    $result = mysql_query($sql,$db);
    $num.$fnum = mysql_num_rows($result);
    if($num.$fnum)
    {
        while(($feed = mysql_fetch_assoc($result))) {
            $feeds[] = $feed;
        }
        foreach($feeds as $feed)
        {
            echo $feed['comment'];
        }
    }
}

最佳答案

$sqlb ="SELECT myfriend_ID FROM friends WHERE my_id = '$myuid'";
$resultb = mysql_query($sqlb,$db);
$follower = array();

if(mysql_num_rows($resultb))
{
   while(($follower = mysql_fetch_assoc($resultb))) {
      $fnum = $follower['myfriend_ID'];//what is the column name
      $sql = "SELECT * FROM usr, feed, course WHERE usr.usr_id = '$fnum' AND feed.usr_id = '$fnum' AND course.usr_id = '$fnum' ORDER BY Feed_ID desc";
      $result = mysql_query($sql,$db);
      if( mysql_num_rows($result))
      {
         while(($feed = mysql_fetch_assoc($result))) {
           echo $feed['comment'];
       }
    }
}

并且您必须将这两个查询合并为一个。但是我的 SQL 不太好。 可能其他人可以提供帮助。

关于php - 在嵌套的 foreach 循环中使用嵌套查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5521477/

相关文章:

mysql - 如何在没有值的字段上使用 MYSQL WHERE

sql - 在 SQL Server 中如何将多行合并为一列?

php - php中单个对象和多个对象类的接口(interface)或类型提示

mysql - 检查mysql表中是否存在列名

php - CURLOPT_FOLLOWLOCATION 不工作

MySQL 函数 - 使用 IF 语句获得更大的值(value)

c# - 在服务器上均匀上传文件

java - 如何在 Firebase 中进行类似于 SQL 查询的查询?

php - 所有通过邮戳发送的电子邮件都在邮戳服务器上排队

php - 学习如何使用 Guzzle 从 API 访问数据