好吧,我的头撞在墙上大约 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/