0

ユーザーにメッセージを送信した人から最新のメッセージを取得するにはどうすればよいですか?

現在、表示されている...

first_name last_name       This is the newest message I sent you   2012-08-11 14:23:38

first_name last_name       test                                    2012-08-11 14:20:35

<?php 
    echo '<div id ="inbox_name">Name</div><div id="inbox_message">Message</div><div id="inbox_time">Time</div><div id="inbox_line"></div>';
    $query = mysql_query("SELECT * FROM `private_messages` WHERE `to_id`=$session_user_id ORDER BY `time_sent` DESC") or die("Error connecting to database. Please try again later.");
     while ($row = mysql_fetch_array($query)) {
        $to_id = $row['to_id'];
        $from_id = $row['from_id'];
        $message = $row['message'];
        $time= $row['time_sent'];

        $message_information = mysql_query("SELECT * FROM `sentrl_users` WHERE `id`=$from_id LIMIT 1");
        while ($row_information = mysql_fetch_array($message_information)) {
            $first_name = $row_information['first_name'];
            $last_name = $row_information['last_name'];
            $username = $row_information['username'];
            echo '<div id="inbox_information"><div id="recieved_name">'. $first_name . ' ' . $last_name .'</div><div id="recieved_message">'. $message .'</div><div id="recieved_time">'. $time .'</div></div>';
        }
    }
    ?>

limit 1 を使用してみましたが、うまくいきませんでした。first_nameand を複製せずに最新のメッセージを取得しようとしていますlast_name

4

1 に答える 1

1

必要な行が 1 行だけの場合は、代わりに

while ($row = mysql_fetch_array($query)) {
//EVERYTHING INSIDE THE ORIGINAL WHILE LOOP
} 

あなたは書くべきです

while($row=mysql_fetch_array($query)){
$array[$row["from_id"]]=$row;
} 
foreach($array as $row){
//EVERYTHING INSIDE THE ORIGINAL WHILE LOOP
}
于 2012-08-11T19:01:43.887 に答える