PHP/mysql - Erreur sur un mysql_fetch_array

Résolu/Fermé
Cutya Hair - Modifié par Cutya Hair le 24/10/2011 à 01:35
 Cutya Hair - 24 oct. 2011 à 17:31
Bonsoir à toutes et à tous !!!

Voilà j'ai un petit soucis, je viens d'écrire un code de la même manière que d'habitude, sauf que là... ça coince. Je ne vois pas d'où vient l'erreur, sûrement une futilité, mais j'ai beau chercher, je ne vois pas...

Voici mon code :

<?php  
 $tblid = $_SESSION['id']; 
 $date = date('Y-m-d'); 
 $host = "***"; 
 $user = "***"; 
 $password = "***"; 
 $bdd = "***"; 
 mysql_connect($host, $user, $password) or die ("Connexion au serveur impossible"); 
 mysql_select_db($bdd) or die ("Connexion à la base impossible"); 
 $queryy = mysql_query("SELECT * FROM event$tblid WHERE date=$date ORDER BY date") or die('select'); 
 while($arrayy = mysql_fetch_array($queryy) or die('fetch')) 
 { 
  echo $arrayy['event']; 
 } 
 mysql_close(); 
?> 


La condition du while renvoie toujours une erreur ('fetch')...
Merci à qui sera en mesure de m'aider :)

5 réponses

Bonjour

WHERE date=$date ORDER BY date"
À quoi bon le ORDER BY date puisque tu ne gardes qu'une seule date ? Mais ça n'est pas ça qui empêche ta requête de marcher.
Si tu faisais des die (mysql_error()) tu aurais eu un message un peu plus parlant.

Tu utilises date comme nom de champ et c'est là le problème. Ce n'est pas interdit, mais comme date est un mot réservé de mysql, quand tu l'utilise comme identifiant, tu dois l'entourer d'accents graves (ceux de la touche 7).
0
Ouais c'est vrai pour le order by lol par contre le mysql_error() ne retourne rien, mais néanmoins je vais esayer avec les '', je ne connaissais pas cette syntaxe, merci ;)
0
Bon bah les ' ' ne fonctionnent pas plus, le mysql_error() ne renvoie toujours rien, j'ai même changé le nom du champ pour voir, et toujours rien...
0
Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
24 oct. 2011 à 15:17
Bonjour,

Le problème, c'est que dans date=$date , tu oublies les guillemets simples autour de $date.

date='$date' marchera mieux :)

Sinon, ce sera plus pratique, au moins pendant le développement, de remplacer ton die('fetch') par die (mysql_error()). Idéalement, tu y remets même la requête pour bien vérifier que sa syntaxe est correcte après remplacement des variables.

Assure-toi aussi que ta table existe bien.

Xavier
0
Merci bien ça marche maintenant, ça venait bien de cette partie : date='$date'
même si je ne comprend pas pourquoi, vu que jusqu'à maintenant ma façon de faire avait toujours fonctionné.
Et sinon, le mysql_error() ne renvoie toujours rien lol
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
C'est vrai qu'il faut des guillemets simples autour de $date,.
Pour les accents graves dont je parlais, la doc est formelle et j'ai déjà vu cette erreur, mais j'avoue que je viens de faire l'essai et que ça a marché quand même. Faudra que je remette ma doc à jour

Je remarque en plus...
 while($arrayy = mysql_fetch_array($queryy) or die('fetch')) 

Ne marchera jamais ! Quand tu auras épuisé la liste des réponses rendues par mysql_fetch_array($queryy), mysql_fetch_array te rendra false, ce qui est tout à fait normal, et ton die sera évalué. Ton script s'arrêtera complètement au lieu de continuer après le while.
0
Aaah ok ! C'est pour ça que l'erreur ne s'affiche pas, puisqu'il n'y en a pas, vu que le mysql_fetch_array a renvoyé ses infos...
Merci encore :)
0