2011-02-12 69 views
0

我是新来的PHP,所以请我道歉,如果我的问题不明确。如何使用php和mysql创建一个订单消息系统

我在mysql中有一个消息表设置。我可以回显sent_by和sent_to用户的消息以及发送时间和如何按时间排序。 我的问题是:我怎么能输出的sent_by和sent_to顺序按时间,但像他这样

user1: sent 2011-02-12 13:34:26 
     hi, how are you 

user2: sent 2011-02-12 13:37:26 
     who is this? 

user1: sent 2011-02-12 13:38:26 
     its me 

user1: sent 2011-02-12 13:38:50 
     from the bar 

user1: sent 2011-02-12 13:40:26 
     the one in the city 

user2: sent 2011-02-12 13:45:26 
     Oh hi 

我想显示用户2红派一切,这USER1黑派的一切消息。我怎样才能做到这一点?

这就是我所做的,但现在我想怎么做的方式不是这样。

$tomsg = mysql_query("SELECT * FROM msg WHERE sent_to = 'user1' "); 

$inboxmsg_count = mysql_num_rows($tomsg); 
if ($inboxmsg_count>0) 
{ 
echo "messages between You and name<br/>"; 

echo 'total message ('.$inboxmsg_count.')<hr/><br/>'; 

while ($msg = mysql_fetch_array($tomsg)){ 
$cmsg = $msg ['cmsg']; 
$time_sent = $msg ['time_sent']; 
$subj = $msg ['subj']; 
echo '<div style="background-color:gray; width:542px; height:auto; padding-left:10px; padding-right:10px"><span style="float:right;">' .$time_sent.'</span><br/><b>' .$subj.'</b><br/> '.$cmsg.'<hr/></div>'; 
} 
$frommsg = mysql_query("SELECT * FROM msg WHERE sent_by = 'user1' "); 
if($inboxmsg_count>0) 
{ 
while ($msg = mysql_fetch_array($frommsg)){ 
$cmsg = $msg ['cmsg']; 
$time_sent = $msg ['time_sent']; 
$subj = $msg ['subj']; 

echo '<div style="background-color:blue; width:542px; height:auto; padding-left:10px; padding-right:10px"><span style="float:right;">' .$time_sent.'</span><br/><b>' .$subj.'</b><br/> '.$cmsg.'<hr/></div>'; 

} 
} 
} 
else {echo "you have no messages y} 

回答

1

有没有必要做两个查询,只需这样做

SELECT username, the, other, fields, you need 
FROM messagestable 
ORDER BY timesent 

和你的PHP代码中,你做

while($row = msyql_fetch_assoc(...)) { 
    ... pick a color based on $row['username'] ... 
    ... display the message using that color ... 
} 
+0

抱歉,但我不明白 – user570782 2011-02-12 21:21:10