0

我试图从一个函数返回两个结果,但只有第一个结果显示在我的页面上。

这是我的功能:

function latestcomment($forum_topics){
    $recent = mysql_query(" SELECT created, owner, topic_id
                            FROM forum_comments
                            WHERE topic_id = '".mysql_real_escape_string($forum_topics['topic_id'])."'
                            ORDER BY created DESC 
                            LIMIT 1 ");
    $mostrecent = mysql_fetch_array($recent);

    $time = $mostrecent['created'];
    $name = $mostrecent['owner'];

    return $time;
    return $name;

}

然后我这样打电话

<?php echo latestcomment($forum_topics); ?>

我从中调用的表如下所示:

+-------+----------+---------------------+------------+
| id    | body     | created             | owner    |
+-------+----------+---------------------+------------+
|     1 |    hello | 2019-12-01 15:50:27 | name1      | 
|     2 |    World | 2019-12-01 15:50:32 | name2      | 
|     3 |       Hi | 2019-12-01 15:51:43 | name3      | 
|     4 |     Over | 2019-12-01 10:20:30 | name4      | 
+-------+----------+---------------------+------------+

此外,我想将返回函数的 created(DATETIME) 部分传递给如下内容:

           <?php           
            $date = date_create($forum_topics['$time']) ;
            echo  date_format($date, 'F j, Y'); echo"<br>";
            echo  date_format($date, 'g:i A'); 
            ?>

只使用一个查询?

我怎样才能做到这一点 ?

谢谢你。

4

3 回答 3

1

两次回报。不去工作。

$output = array(
 'time' => $time,
 'name' => $name,
);

return $output;
于 2012-09-18T21:04:10.097 回答
1

这是行不通的:

return $time;
return $name;

PHP 将返回第一个值,而带有第二个返回值的行将永远不会被执行。您需要执行以下操作:

return ($time, $name);

这将返回两个值,作为一个数组。您需要修改用于处理数组而不是字符串的代码。

于 2012-09-18T21:04:30.893 回答
1

执行第一次返回后,您离开函数,甚至不评估第二次返回。返回一个对象或数组。喜欢:

return array('time' => $time, 'name' => $name);

或者也许创建一个comment对象。填充并返回它。

于 2012-09-18T21:05:31.127 回答