0

としてデータベースに保存されているユーザーの友人がいますfriends_array。それらは友達の ID を保存し、coma で区切られています。ユーザーが作成した投稿を出力できましたが、問題があります。これは私のコードです。

if ($friend_feed != "") {
$feed= explode(',', $feed);
    foreach ($feedas $key => $value) {
        $query = mysql_query("SELECT * FROM `users` WHERE user_id=$value ORDER BY `time` DESC") or die ("Please try again later.");
        while ($row = mysql_fetch_array($query)) {
            $first_name = $row['first_name'];
            $last_name = $row['last_name'];
            $username = $row['username'];
            $post = $row['post'];
            echo '<hr><a href ="'. $username .'">'.$first_name.' '.$last_name.'</a> <br>'.$post;
        }
    }
}

上記のこのコードは、フレンド ID を調べて投稿を出力します...しかし、最初に各フレンドが処理されます...たとえば、ID が 70、71、および 72 の 3 人のフレンドがいます。全員がそれぞれ 2 つの投稿を作成した場合、彼らはデータベースに保存されている ID の順に出力されるため、ユーザー 70 の投稿が最初に表示され、次にユーザー 71 のすべての投稿、次にユーザー 72 の順に表示されます。

これを停止して、最近データベースに入れられた投稿によって出力するにはどうすればよいですか?

4

1 に答える 1

3

次のような別のクエリを試すことができます。

SELECT * FROM `users` WHERE user_id IN ($feed) ORDER BY `time` DESC

foreach全体を落としてexplode

于 2012-08-06T00:05:23.153 に答える