Probleme boucle sql et xajax
Utilisateur anonyme
-
zoubairo -
zoubairo -
Bonjour,
je fais un chat avec xajax mysql php,
j'ai trouvé un tuto qui explique comment le faire mais avec un fichier chat.txt, j'ai donc changé les requete pour sa joue avec mysql mais le probleme c'est que ça n'affiche que le dernier message ,
je vous met le code, si quelqu'un sait comment faire !!!
donc ça fonctionne mais ça n'affiche que le dernier message
!!!!
merci d'avance
je fais un chat avec xajax mysql php,
j'ai trouvé un tuto qui explique comment le faire mais avec un fichier chat.txt, j'ai donc changé les requete pour sa joue avec mysql mais le probleme c'est que ça n'affiche que le dernier message ,
je vous met le code, si quelqu'un sait comment faire !!!
<?php // // fonction PHP pour afficher les messages : // function afficher() { $reponse = new xajaxResponse();// Création d'une instance de xajaxResponse pour traiter les réponses serveur. try { $bdd = new PDO('mysql:host=localhost;dbname=test', 'root', ''); } catch(Exception $e) { die('Erreur : '.$e->getMessage()); } $req = $bdd->query('SELECT * FROM message'); while ($donnees = $req->fetch()) { $message = '<p><strong>' . htmlspecialchars($donnees['posteur']) . '</strong> : ' . htmlspecialchars($donnees['message']) . '</p>'; } $reponse->assign("block", "innerHTML", $message); return $reponse; } // // fonction PHP envoyer pour envoyer un message : // function envoyer($posteur, $message) { $reponse = new xajaxResponse();//Création d'une instance de xajaxResponse pour traiter les réponses serveur. try { $bdd = new PDO('mysql:host=localhost;dbname=test', 'root', ''); } catch(Exception $e) { die('Erreur : '.$e->getMessage()); } $bdd->exec('INSERT INTO message (id, posteur, message) VALUES("", "'.htmlentities($posteur).'", "'.htmlentities($message).'")' ) ; $reponse->clear('message', 'value');// On vide le champ contenant le message de l'utilisateur. $reponse->call('xajax_afficher');// On appelle la fonction afficher pour afficher les messages pour que l'utilisateur voie son message à l'écran. return $reponse; } require_once('xajax_core/xajax.inc.php'); $xajax = new xajax(); // initialise l'objet xajax. $xajax->register(XAJAX_FUNCTION, 'afficher');// enregistre nos fonctions. $xajax->register(XAJAX_FUNCTION, 'envoyer'); $xajax->processRequest(); ?> <!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> <title>Chat xAjax</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <?php $xajax->printJavascript(); /* Affiche le Javascript */?> <script type="text/javascript"> function refresh()// Code javascript qui va appeler la fonction afficher toutes les 5 secondes. { xajax_afficher(); setTimeout(refresh, 5000); } </script> </head> <body> <div id="block"></div> <form action=""> <fieldset> <legend>Entrer ici votre message :</legend> <div> <label>Nom : <input type="text" size="15" id="posteur" /></label><br /> <label>Message : <input type="text" size="50" id="message" /></label><br /> <input type="submit" value="Envoyer" onclick="xajax_envoyer(document.getElementById('posteur').value, document.getElementById('message').value); return false;" /> </div> </fieldset> </form> <script type="text/javascript"> refresh();// appelle la fonction refresh() pour lancer le script. </script> </body> </html>
donc ça fonctionne mais ça n'affiche que le dernier message
!!!!
merci d'avance
A voir également:
- Probleme boucle sql et xajax
- Logiciel sql - Télécharger - Bases de données
- Xiaomi s'éteint tout seul et se rallume en boucle - Forum Xiaomi
- Pc qui s'allume et s'éteint en boucle - Forum Virus
- Huawei s'allume et s'éteint en boucle - Forum Huawei
- Sql (+) - Forum Programmation
4 réponses
je n'ai pas testé ton code mais c'est normal que tu n'ai que le dernier message posté car :
- dans ta fonction afficher :
-> tu fais une requete puis une boucle mais tu ne concatènes pas les données. tu auras donc la dernière ligne trouvée dans $message
pour corriger :
-> remplace "$message =" par "$message.="
- dans ta fonction afficher :
-> tu fais une requete puis une boucle mais tu ne concatènes pas les données. tu auras donc la dernière ligne trouvée dans $message
pour corriger :
-> remplace "$message =" par "$message.="