Page 1 sur 1

Minichat

Posté : 31 déc. 2007, 15:27
par anunsan
Bonjour a tous , et bonne année aussi ^^

Bon voila en faite je m entraine aux php et mysql et je code pour le moment un minichat simple , mais j'ai un problème.

il m'indique cette erreur.

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp1-8\www\minichat.php on line 73

voici la ligne en question.
while ($donnees = mysql_fetch_array($reponse))
Qu'est ce qui n'est pas valide dans cette ligne?

Posté : 31 déc. 2007, 15:34
par zeus
L'erreur que tu nous donnes signifie que le retour d'exécution de la requête (la valeur de retour de mysql_query() ) est invalide.
En clair, cela signifie que la requête a échouée.

Pour prévenir ce genre d'erreur, il faut gérer le retour d'erreur
$str_requete = "SELECT ...";
$o_result = mysql_query($str_requete);

if( $o_result === false )
{
  echo "La requête a échouée : \n". $str_requete ."\n". mysql_error();
}
else
{
  while ($donnees = mysql_fetch_array($reponse))
  {
    ..
  }
}

Posté : 31 déc. 2007, 15:39
par anunsan
Un post a disparu ? :?

Mon erreur ce trouve peut être ici ?
// On utilise la requête suivante pour récupérer les 10 derniers messages :
$reponse = mysql_query("SELECT * FROM minichat ORDER BY ID DESC LIMIT 0,10");
Merci zeus pour ta solution, mais cela ne la corrige pas elle affiche juste autre chose.

Posté : 31 déc. 2007, 16:19
par d0m
elle t'affiche surement une erreur SQL qui t'indique d'où vient le problème.

Posté : 31 déc. 2007, 16:23
par anunsan
J'ai mis ceci a la place
$reponse = mysql_query("SELECT * FROM minichat ORDER BY id LIMIT 0, 10 DESC") or die(mysql_error());
et sa m'indique

Erreur de syntaxe près de 'DESC' à la ligne 1

ps: pas facile ou début :roll:

Posté : 31 déc. 2007, 16:37
par d0m
Effectivement ta syntaxe n'est pas correct.
DESC correspond à l'ordre, il vient donc à la fin de l'élément désignant l'ordre :

Code : Tout sélectionner

SELECT * FROM minichat ORDER BY id DESC LIMIT 0, 10
Il ne faut pas mélanger les différentes options des requêtes.

Posté : 31 déc. 2007, 16:44
par zeus
Merci zeus pour ta solution, mais cela ne la corrige pas elle affiche juste autre chose.
Effectivement, c'est le but

_Tu ne laisse pas PHP gérer ses propres erreurs, mais tu mets en place ta propre gestion d'erreur
_Tu obtiens le message d'erreur qui t'indique quelle est l'erreur dans la requête

Posté : 31 déc. 2007, 17:09
par anunsan
Merci c'est bon

Posté : 31 déc. 2007, 20:11
par Patriboom
Tu peux aussi tout simplement télécharger une solution toute faite:
http://www.webdev.ro/products/webchat/