繁体   English   中英

PHP中另一个查询的while循环内的MySQL查询

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM