2011-02-12 3 views
0

Je suis nouveau sur php alors s'il vous plaît je m'excuse si ma question ne ressort pas clairement.comment mettre en place une commande un système de messagerie en utilisant php et mysql

J'ai une configuration de table de message dans mysql. Je suis capable de répercuter les messages envoyés et envoyés à un utilisateur et l'heure à laquelle ils ont été envoyés et comment les commander au fil du temps. Ma question est la suivante: comment puis-je produire les messages dans un sent_by et sent_to ordre par le temps, mais comme celui-ci

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 

Je veux montrer tout ce qui USER2 envoyé en rouge et tout ce qui USER1 envoyé en noir. Comment puis-je faire ceci?

C'est ce que j'ai fait, mais la façon dont je veux le faire maintenant n'est pas comme ça.

$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} 

Répondre

1

Il n'y a pas besoin de faire deux requêtes, il suffit de faire quelque chose comme

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

et dans votre code PHP, vous

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

désolé mais je ne comprends pas – user570782

+0

Vous faites deux boucles. "récupérer tous les messages de l'utilisateur 1. les afficher, puis récupérer tous les messages de l'utilisateur 2. les afficher". Au lieu de cela, faites une boucle, puis "si ce message provient de l'utilisateur 1, affichez-le en rouge sinon affichez-le en noir". Si ce n'est pas assez compréhensible, alors s'il vous plaît ... allez apprendre la programmation de base. –

Questions connexes