OK, so it's difficult to explain but I'm gonna try. Basically, I'm making a messages or conversations page, where you can see your conversations. I get the conversation from the messages, so basically I show every message. What I want to do however, is to only show the latest message of each conversation. Here is how I currently have it:
<?php $getmsg = mysql_query("SELECT * FROM messages WHERE to_user = '$username' ORDER BY id DESC"); if (!$getmsg){ die(mysql_error()); } while ($row = mysql_fetch_assoc($getmsg)){ $from = $row['from']; $content = $row['comment']; $msgid = $row['id']; $seen = $row['seen']; $shortcontent = substr($content, 0, 60)."..."; ?> <a class="msgbox<?php if ($seen == "no"){ ?> notseen<?php } ?>" href="/convo/<?php echo($from); ?>"> <b><?php echo($from); ?></b><br /> <span><?php if (strlen($content) < 65){ echo($content); }else{ echo($shortcontent); } ?></span> </a> <?php } ?>
I sent two messages to myself, and they both show up on the conversation page, I want it so that only the latest of them show up there, and if someone else gives me a message, their latest show there as well. Understand?
Ah alright, my bad. The easiest way I can think of would be to keep track of the conversation with an id, and then that way you can limit the number of results for each conversation to its ID with the newest result.
I agree, you need a way to identify which conversation the message is a part of and include a date stamp column so that you can get the latest message.
I sent two messages to myself, and they both show up on the conversation page, I want it so that only the latest of them show up there, and if someone else gives me a message, their latest show there as well. Understand?
Thank you.
- Schart
Limit 1 tells the query to only grab one result.