Partage
  • Partager sur Facebook
  • Partager sur Twitter

la requete qui affiche les messages envoyer de deux chateurs

Sujet résolu
    8 avril 2011 à 3:45:45

    Salut

    Voila je conçois un site de chat multi users en ce moment mais je bloc lorsque je veux afficher les messages envoyer entre deux tchateur

    Voici ma bdd (chat) elle contient deux tables :

    chat_membres(membre_id, membre_pseudo, membre_sitation, membre_localisation, membre_sexe, membre_age)

    chat_messages(message_id, message_expediteur, message_receveur, message_text, message_lu)

    ma page web contient deux partie une qui affiche la liste des membres connectés et la deuxieme partie affiche la liste des messages envoyer par les deux tchateurs en discution ceci depend de la session du tchateur enfin bref je bloc sur la requete qui affiche les messages entre deux tchateur car quand un tchateur clic sur un des membres connecté il récupére son identifiant atravers la méthode get bref cette identifiant se definit comme ce ci : $dest

    voila ma requete si vous pouviez me la corrigé pour quelle puisse m'affichée les messages entre deux tchateur ca serai simpa ^^ :



    $query=$db->prepare('SELECT chat_messages.message_text, chat_membres.membre_pseudo 
    FROM chat_messages, chat_membres 
    WHERE chat_messages.message_expediteur = chat_membres.membre_id 
    AND chat_messages.message_receveur = :dest');
    
    $query->bindValue(':dest',$dest,PDO::PARAM_INT);
    
    $query->execute();
    


    Cordialement
    • Partager sur Facebook
    • Partager sur Twitter

    Android est SKYNET !

      8 avril 2011 à 10:52:26

      salut,

      sans passer sur le fait qu'il ya des fautes dans les noms des champs de tes tables ^^ , pourquoi deja ne pas rajouter un champ date ?

      Indique nous comme tu sais avec quel membre la personne discute parce que la, c'est un peu floue...
      • Partager sur Facebook
      • Partager sur Twitter
        8 avril 2011 à 12:52:00

        Salut lucyboss1 et merci de m'avoir répondu enfin bref voila quand je clic sur un membre qui est un lien html ben la deuxieme partie de la page web affiche en haut les messages envoyer entre mes deux tchateur et en bas une barre de texte pour pouvoir ecrire le message a envoyer enfin voila c'est le méme systeme que msn mais je ne sais pas comment ecrire la requete qui affiche les messages envoyer entre deux tchateurs

        PS : j'ai pas compris ou sont les fautes et pour le champ date c'est pas la peine c'est vrai que c'est indispensable mais je passe
        • Partager sur Facebook
        • Partager sur Twitter

        Android est SKYNET !

          8 avril 2011 à 13:41:42

          perso j'ai rien compris a ton problème explique avec precision ^^
          • Partager sur Facebook
          • Partager sur Twitter
            8 avril 2011 à 13:48:45

            1/ qu'as-tu exactement dans $dest ?

            2/ as-tu en session une variable qui te permet d'identifier l'utilisateur connecté. Si oui, quoi et que contient-elle ??
            • Partager sur Facebook
            • Partager sur Twitter
              8 avril 2011 à 14:01:38

              merci les gars de m'avoir repondu en fin voila dans ma variable $dest je récupère l'identifiant du membre dans la liste des mambres connéctés voici le code qui affiche la liste de smembres connéctés :

              <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
              <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
              <head>
              
              <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
              <link rel="stylesheet" media="screen" type="text/css" title="Design" href="./css/design.css" />
              </head>
              <html>
              <body>
              
              <?php
              include("connexpdo.inc.php");
              
              $db = connexpdo("chat","myparam");
              $query=$db->prepare('SELECT membre_pseudo, membre_id FROM chat_membres');
              $query->execute();
              
              ?>
              <table border = "1">
              <?php
              
              while($data = $query->fetch())
              {
              
              
                      ?>
              		<tr><th><strong><a href="message.php?dest=<?php echo $data['membre_id'];?>" onclick="this.target='message';"><?php echo stripslashes(htmlspecialchars($data['membre_pseudo']));?></strong></a></th></tr>
              		<?php
              
              
              
              
              
              }
              $query->CloseCursor();
              
              ?>
              </table>
              </body>
              </html>
              


              et apres dans la deuxieme partie de la page j'affiche les messages des deux tchateurs qui communiquent :

              <?php session_start();?>
              
              <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
              <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
              <head>
              <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
              <link rel="stylesheet" media="screen" type="text/css" title="Design" href="./css/design.css" />
              </head>
              <html>
              <body>
              <?php
              
              //Attribution des variables de session
              
              $id=(isset($_SESSION['id']))?(int) $_SESSION['id']:0;
              
              
              
              include("connexpdo.inc.php");
              
              $db = connexpdo("chat","myparam");
              
              
              $dest = (int) $_GET['dest'];
              
              $query=$db->prepare('SELECT chat_messages.message_text, chat_membres.membre_pseudo 
              FROM chat_messages, chat_membres 
              WHERE chat_messages.message_expediteur = chat_membres.membre_id 
              AND chat_messages.message_receveur = :dest');
              
              $query->bindValue(':dest',$dest,PDO::PARAM_INT);
              
              $query->execute();
              
              
              ?>
              <table border = "1">
              <?php
              
              while($data = $query->fetch())
              {
              
              
                      ?>
              		<div>
              		<tr>
              		
              		<td><strong><?php echo stripslashes(htmlspecialchars($data['membre_pseudo']));?></strong></td>
              		<td><strong><?php echo $data['message_text'];?></strong></td>
              		
              		</tr>
              		</div>
              		<?php
              
              
              
              
              
              
              }
              $query->CloseCursor();
              
              ?>
              
              </table>
              
              <div><form method="post" action="poste.php?dest=<?php echo $dest ?>" name="formulaire">
              
              <textarea cols="80" rows="4" cols="10" id="message" name="message"></textarea>
                 <br />
                 <input type="submit" name="submit" value="Envoyer" /></form></div>
               
                 
               
              
              </body>
              </html>
              
              • Partager sur Facebook
              • Partager sur Twitter

              Android est SKYNET !

                8 avril 2011 à 14:06:00

                Quelles sont les structures de tes tables exactement ?
                • Partager sur Facebook
                • Partager sur Twitter
                  8 avril 2011 à 14:14:48

                  CREATE TABLE `chat_membres` (
                  `membre_id` int(11) NOT NULL AUTO_INCREMENT,
                  `membre_pseudo` varchar(30) collate latin1_general_ci NOT NULL,
                  `membre_signature` varchar(200) collate latin1_general_ci NOT NULL,
                  `membre_localisation` varchar(100) collate latin1_general_ci NOT NULL,
                  `membre_sexe` varchar(30) collate latin1_general_ci NOT NULL,
                  `membre_age` varchar(30) collate latin1_general_ci NOT NULL,
                  PRIMARY KEY (`membre_id`)
                  );

                  CREATE TABLE `chat_messages` (
                  message_id int(11) NOT NULL AUTO_INCREMENT,
                  message_expediteur int(11) NOT NULL,
                  message_receveur int(11) NOT NULL,
                  message_text text collate latin1_general_ci NOT NULL,
                  message_lu enum('0','1') collate latin1_general_ci NOT NULL,
                  PRIMARY KEY (`message_id`)
                  )

                  • Partager sur Facebook
                  • Partager sur Twitter

                  Android est SKYNET !

                    8 avril 2011 à 14:26:57

                    Ca te va ?

                    <?
                    
                    $query=$db->prepare('SELECT mess.message_text, exp.membre_pseudo AS expediteur, rec.membre_pseudo as receveur
                    FROM chat_messages AS mess
                    INNER JOIN chat_membres AS exp ON mess.message_expediteur = exp.membre_id
                    INNER JOIN chat_membres AS rec ON mess.message_receveur = rec.membre_id
                    WHERE (exp.membre_id = :id1 AND rec.membre_id = :choix1)
                       OR (exp.membre_id = :choix2 AND rec.membre_id = :id2)
                    ORDER BY mess.message_id');
                    
                    $query->bindValue(':id1',$id,PDO::PARAM_INT);
                    $query->bindValue(':id2',$id,PDO::PARAM_INT);
                    $query->bindValue(':choix1',$dest,PDO::PARAM_INT);
                    $query->bindValue(':choix2',$dest,PDO::PARAM_INT);
                    
                    $query->execute();
                    
                    ?>
                    <table border = "1">
                    <?php
                    
                    while($data = $query->fetch())
                    {
                    
                    
                            ?>
                    		<div>
                    		<tr>
                    		
                    		<td><strong><?php echo stripslashes(htmlspecialchars($data['expediteur']));?></strong></td>
                    		<td><strong><?php echo $data['message_text'];?></strong></td>
                    		
                    		</tr>
                    		</div>
                    		<?php
                    
                    
                    
                    
                    
                    
                    }
                    $query->CloseCursor();
                    
                    ?>
                    
                    </table>
                    
                    • Partager sur Facebook
                    • Partager sur Twitter
                      8 avril 2011 à 15:13:06

                      aah je ne sais pas quoi mille merci sincerement je te suis mille fois reconnaissant car ca fait 5 jours que je me debat avec cette requête enfin merci beaucoup Taguan :)
                      • Partager sur Facebook
                      • Partager sur Twitter

                      Android est SKYNET !

                      la requete qui affiche les messages envoyer de deux chateurs

                      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                      • Editeur
                      • Markdown