Page 1 sur 1
Afficher un mini chat !
Posté : 08 avr. 2006, 11:48
par the_grinch
Slt !!
Voila j'ai fait un mini chat et il arrive bien a m'enregistrer les messages dans la table mais il ne me les affiches pas !
voici le code :
<?
$texteduchat = mysql_query("SELECT * FROM chat DESC id LIMIT 0‚ 5");
while ($datachat2 = mysql_fetch_array($texteduchat) )
{
?>
Par : <? echo $datachat2['pseudo']; ?><br>
<? echo $datachat2['message']; ?>
<?
}
?>
Je ne comprends pas ce qu'il ne va pas, il n'y a aucun message d'erreur !
Merci !
Posté : 08 avr. 2006, 12:38
par Ryle
Si tu joues la requête dans MySql ou phpMyAdmin est-ce qu'elle te retourne bien des résultats ? n'y a-t-il pas de soucis de casse (majuscule minuscule) entre les noms de tes champs et tes indexes de $datachat2 ?
(il vaut mieux prendre l'habitude de nommer explicitement les champs dans un select plutot que d'utiliser *, c'est plus sur par rapport à l'ordre des champs, leur nom, et ca ne peut être que plus performant de ne pas ramener les données que l'on utilises pas

)
Posté : 08 avr. 2006, 13:15
par the_grinch
Alors non il ne me le fait pas, il me met une erreur dans MySQL :
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '0‚5 LIMIT 0, 30' at line 1
quand je fais :
SELECT pseudo, message FROM chat LIMIT 0‚5
Posté : 08 avr. 2006, 13:20
par leroimarco
Il est possible que ton problème vienne des caractères spéciaux. Peut être qu'un ajout de addslashes() en écriture et stripslashes en lecture corrigeront ton problème ... ?

Posté : 08 avr. 2006, 13:37
par Ryle
Pour l'essai direct dans mysql, le soucis semble provenir du fait qu'il rajoute son "limit 0, 30" à la fin de ta requête sans tenir compte du tiens... y a un soucis avec ta virgule qui n'en est pas vraiment une (il y a une très légère différence entre celle que tu as entre les champs et celle que tu as dans le limit :
SELECT pseudo, (...) 0‚5
Ca se voit mieux comme ça :
Il y a également un truc bizare dans ta requête initiale , il doit te manquer le "order by" qui est écrit d'une étrange manière (DESC id ?)

Essaie comme ceci :
Posté : 08 avr. 2006, 14:08
par the_grinch
J'ai mis ça et toujours rien !
<?
$texteduchat = mysql_query("SELECT id, pseudo, message
FROM chat
ORDER BY id DESC
LIMIT 0, 5");
while ($datachat = mysql_fetch_array($texteduchat) )
{
?>
Par : <? echo $datachat['pseudo']; ?><br>
<? echo $datachat['message']; ?>
<?
}
?>
Posté : 08 avr. 2006, 14:19
par Ryle
Groumpf !
Ta requête passe bien maintenant dans MySql ?
Question bête sans doute mais.. t'as bien une connexion d'ouverte avant ?
Posté : 08 avr. 2006, 15:06
par the_grinch
MDR !!!
Je ne sais pas jusque ou ira ma connerie !
J'ai oublié la connexion avant, elle y est apres mais pas avant maintenant oui c'est bon ça fonctionne !
Merci pour vos reponses !