messageri interne

Répondre
universdupc
le 11/01/2005 à 18:28
universdupc
Bonjours ! Voilà je suis entrain de créer une page message_envoyer pour ma messagerie interne, pour le moment tout va bien j'ai bien les messages que la personne à envoyer afficher avec le sujet et l'id du destinataire. mais le probleme je voudrais que l'id du destinataire correspond à son pseudo dans la table membres, comme pour les messages recu je vous met ci-dessous la source quelqu'un peut me dir ou et comment je pourrait faire ca :

<?php
session_start();

?>

<html>
<head>
<title>Document sans titre</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<?php
include("css.php");

$base = mysql_connect ('localhost', 'root', '');
mysql_select_db ('espace_membre', $base);

// on prépare une requete SQL cherchant tous les titres, les dates ainsi que l'auteur des messages pour le membre connecté
$sql = 'SELECT id, titre, date, id_destinataire, messages.id as id_message FROM messages WHERE id_expediteur="'.$_SESSION['id'].'" ORDER BY date DESC';
// lancement de la requete SQL
$req = mysql_query($sql) or die('Erreur SQL !'.$sql.''.mysql_error());
$nb = mysql_num_rows($req);


echo"<table border align='center' cellpadding='0' cellspacing='0' bordercolor='#000000'>
<tr>
<td align=\"center\"><img src='images/fleche.gif'></td>
<td align=\"center\">Date/heure</td>
<td align=\"center\">Sujet</td>
<td align=\"center\">Destinataire du message</td>
</tr>";

if ($nb == 0) {
echo 'Vous navez aucun message.';
}
else {
// si on a des messages, on affiche la date, un lien vers la page lire.php ainsi que le titre et l'auteur du message
while ($data = mysql_fetch_array($req)) {

//$id_message = $data['id']; //récupération de l'id de la table messages (news)
$date_mess = $data['date'];
$titre = stripslashes(htmlentities(trim($data['titre'])));
$id_messa = $data['id_message'];
//$id_mess = $data['id_mess'];
$expedit = stripslashes(htmlentities(trim($data['id_destinataire'])));
//$expedit = $pseudo;
//$lu_mess = $data['lu']; //variable permettant de stocker la valeur dans lu de la table

echo"
<tr><td width='5%' bgcolor=\"$color_fond_titre2\" align=\"center\" class=\"titre2\">";
//instruction si qui permet de savoir si l'on met le dossier nouveau ou ancien sur les messages
//if($lu_mess=="1")
//{
//echo"<img src='images/lu.gif'>"; // si le messages à déjà était lu
//}
//else
//{
//echo"<img src='images/nonlu.gif'>"; //si le message n'a pas encore était lu
//}


echo"</td>
<td width='35%' bgcolor=\"$color_fond_titre2\" align=\"center\" class=\"titre2\">$date_mess</td>
<td width='20%' bgcolor=\"$color_fond_titre2\" align=\"center\" class=\"titre2\"><a href='lire_mess_envoyer.php?id_message=$id_messa'>$titre</a></td>
<td width='20%' bgcolor=\"$color_fond_titre2\" align=\"center\" class=\"titre2\"><a href='membres.php?id_membre=$id_mess'>$expedit</a></td>
</tr>";
}
}
echo"</table>";

mysql_free_result($req);
mysql_close();
?>

</body>
</html>


quand j'arrive à afficher le speudo il m'affiche trois foi sle meme message merci à tous.

Et encore bravo au créateur de se site.

Note de zebden : Pensez à utiliser le BB-code pour une meilleure lisibilité de votre code
LA GLOBULE
le 11/01/2005 à 18:58
LA GLOBULE
Il te suffit de faire une jointure entre la table messages et la table membres.

Avec cette jointure, tu pourras remplacer le id_destinataire par le pseudo du destinataire.
universdupc
le 11/01/2005 à 19:03
universdupc
oui je c ca les fait mes quand je fait cette jointure il maffiche trois fois les messages envoyer trois par trois
LA GLOBULE
le 11/01/2005 à 20:11
LA GLOBULE
Cela m'etonne que tu ais des résultats en triple (vu que tu select l'id, je pense pas que tous tes messages ont la meme id).

Sinon, pour résoudre ce problème, place le mot DISTINCT après ton SELECT.

Exemple : SELECT DISTINCT id, ....
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours