PHP/mysql - Erreur sur un mysql_fetch_array [Résolu/Fermé]

Signaler
-
 Cutya Hair -
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).
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 ;)
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...
Messages postés
3659
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
26 novembre 2020
975
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
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
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.
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 :)