0

関数から2つの結果を返そうとしていますが、最初の結果だけがページに表示されています。

これが私の関数です:

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'); 
            ?>

1つのクエリのみを使用しますか?

これどうやってするの ?

ありがとうございました。

4

3 に答える 3

1

2回のリターン。仕事に行きません。

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

return $output;
于 2012-09-18T21:04:10.097 に答える
1

これはうまくいきません:

return $time;
return $name;

PHP は最初の値を返し、2 番目の値を含む行は決して実行されません。次のようなことをする必要があります:

return ($time, $name);

両方の値を配列として返します。文字列ではなく配列を処理するために使用しているコードを修正する必要があります。

于 2012-09-18T21:04:30.893 に答える
1

最初のリターンが実行された後、関数を終了すると、2 番目のリターンは評価されません。オブジェクトまたは配列を返します。お気に入り:

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

または、オブジェクトを作成することもできcommentます。記入して返却してください。

于 2012-09-18T21:05:31.127 に答える