Bonjour à tous.
J'ai réalisé un chat PHP+MySQL auquel je rajoute actuellement une couche AJAX pour qu'il tourne en temps réel. Pour cela j'utilise Sajax ( http://www.modernmethod.com/sajax/ ).
Bon jusqu'à maintenant j'ai réussi à "dompter la bête".
J'arrive à réactualisé toutes les 2 secondes des valeurs de test. Exemple :
Et le code Javascript :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 require("Sajax.php"); function show_now() { $testmess="message"; $testpseud="pseudo"; $testtemps="123456"; return'<p class=chatp> '.$testtemps.' <strong> '.$testpseud.' </strong> :<br /> '.$testmess.' </p>'; }
Ca ça marche très bien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 function show_me(date_server) { document.getElementById("chatdiv").innerHTML = date_server; } function get_date() { //put the return of php's show_now func //to the javascript show_me func as a parameter x_show_now(show_me); //do it every 1 second setTimeout("get_date()", 2000); }(bon les noms de valeurs (get_date, etc.) sont un peu bizarres mais c'est un code repris et comme je n'avais pas vraiment à y toucher j'avais la flemme de les changer
).
Maintenant, en lieu et places des valeurs de test, je voudrais afficher des valeurs issues de ma base MySQL (puisque les conversations du chat sont stockées dedans).
Et là problème.
Voici ma requête :
Dans la version non-AJAX de mon chat elle fonctionne très bien donc le problème ne vient pas de là.
Code : Sélectionner tout - Visualiser dans une fenêtre à part $reponse = mysql_query("SELECT * FROM chat_prive WHERE conv_from = $am_from && conv_to = $am_to || conv_from = $am_to && conv_to = $am_from ORDER BY conv_id DESC LIMIT 0,50") or die(mysql_error());
Si je place ma requête avant la fonction, elle ne retourne aucune valeur. Et si je la placedans la fonction, la fonction ne s'exécute plus.
A noter que j'ai bien pris soin auparavant d'initialiser toutes les valeurs demandées par la requête, donc ce n'est pas non plus le problème.
Voici la totalité du code pour les curieux (enfin seulement la partie qui pose problème) :
Voilà donc j'aimerais bien savoir comment intégrer ma requête MySQL pour qu'elle soit utilisée dans la fonction.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 <?php require("Sajax.php"); session_start(); include("includes/identifiants.php"); mysql_connect($adresse, $nom, $motdepasse); mysql_select_db($database); $membre = (int) $_GET['m']; $ami = $_GET['a']; if ($ami == 1) { $am_from = $_SESSION['id']; $am_to = $membre; } else if ($ami == 2) { $am_from = $membre; $am_to = $_SESSION['id']; } else if ($ami != 1 && $ami != 2 || !isset($ami)) { echo '<a href ="./index.php">Index du forum</a><br />Une erreur est survenue.'; exit(); } function show_now() { $reponse = mysql_query("SELECT * FROM chat_prive WHERE conv_from = $am_from && conv_to = $am_to || conv_from = $am_to && conv_to = $am_from ORDER BY conv_id DESC LIMIT 0,50") or die(mysql_error()); $testmess="message"; $testpseud="pseudo"; $testtemps="123456"; return'<p class=chatp> '.$testtemps.' <strong> '.$testpseud.' </strong> :<br /> '.$testmess.' </p>'; }
Merci d'avance pour vos réponses.![]()
Partager