[英]MySQL query within another query's while loop in PHP
我有以下代码:
$query = mysql_query("SELECT * FROM activity ORDER BY activity_time DESC LIMIT 50");
while($result = mysql_fetch_array($query)) {
extract($result);
if ($activity_type == "discussion") {
$query = mysql_query("SELECT * FROM discussions WHERE discussion_uuid = '$activity_ref'");
while($result = mysql_fetch_array($query)) {
extract($result);
echo $discussion_user . " said:<br>" . $discussion_text . "<br>";
}
} elseif ($activity_type == "file") {
}
}
但是它只返回最后一行。 我的目标是按时间顺序排列“活动”,每个活动的显示方式视类型而略有不同。
您使用$ query和$ result两次,因此第二个循环将覆盖第一个循环的结果并停止...
$ query = mysql_query(“ SELECT * FROM activity ORDER BY activity_time DESC LIMIT 50”);
和
$ query = mysql_query(“ SELECT * FROM讨论区,here Discussion_uuid ='$ activity_ref'”);
与$ results var相同...
我建议您将其更改为$ query和$ query2,但最好使用类似
$activies = mysql_query("SELECT * FROM activity ORDER BY activity_time DESC LIMIT 50");
while($activity = mysql_fetch_array($activies)) {
和
$discussions = mysql_query("SELECT * FROM discussions WHERE discussion_uuid = '$activity_ref'");
while($discussion = mysql_fetch_array($discussions)) {
我也避免使用提取-因为您可能会覆盖您不希望的var ...
您必须创建与数据库的另一个连接,以便可以同时运行它们。
要么
您可以将第一个结果加载到数组中,然后循环遍历该数组。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.