Souci avec variable dans requete
Résolu
lonewolf
-
lonewolf -
lonewolf -
Bonjour,
j'ai un souci tout bête.
Sur une requête,j'essai d'afficher une ligne de ma table avec 3 conditions. Les deux premières fonctionnent mais quand je met la 3ème, je n'ai pas de resutat de retour.
Cette condition est sur la date contenu dans ma table et je ne vois pas quelle erreur, je peux bien faire, car lorsque je fais un echo de la date, j'ai bien la bonne date, affiché correctement et identique a celle contenu dans ma table.
Pouvez vous m'aider svp ?
j'ai un souci tout bête.
Sur une requête,j'essai d'afficher une ligne de ma table avec 3 conditions. Les deux premières fonctionnent mais quand je met la 3ème, je n'ai pas de resutat de retour.
Cette condition est sur la date contenu dans ma table et je ne vois pas quelle erreur, je peux bien faire, car lorsque je fais un echo de la date, j'ai bien la bonne date, affiché correctement et identique a celle contenu dans ma table.
Pouvez vous m'aider svp ?
//Connection Mysql
// ********* Recupération date *********
$jour = array("Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi");
$mois = array("","Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre");
$datedujour = $jour[date("w")]." ".date("d")." ".$mois[date("n")]." ".date("Y");
echo $datedujour; //la ca fonctionne
//********* Fin Recupération date *********
mysql_connect("**","**","**")or die("Problème avec la base de données");
mysql_select_db("**")or die ("pas de connection");
$reponse = mysql_query("SELECT * FROM capvimbles WHERE inscrits=1 AND valide='1' AND datedujour='".$datedujour."'"); // Requête SQL
// On fait une boucle pour lister tout ce que contient la table :
//***********************************************************************************************************************
if ($reponse)
{
//*************************************************************************************************************************
while ($donnees = mysql_fetch_array($reponse))
{
?>
<tr>
<td><center><font face="tahoma" size="2"><?php echo $donnees['id']; ?></font></center></td>
<td><center><font face="tahoma" size="2"><?php echo $donnees['datedujour']; ?></font></center></td>
<td><center><font face="tahoma" size="2"><?php echo $donnees['heure']; ?></font></center></td>
<td><center><font face="tahoma" size="2"><?php echo $donnees['nom']; ?></font></center></td>
<td><center><font face="tahoma" size="2"><?php echo $donnees['numero']; ?></font></center></td>
<td><center><font face="tahoma" size="2"><?php echo $donnees['nombre']; ?></font></center></td>
<td><center><font face="tahoma" size="2"><?php echo $donnees['nombre']*50; ?></font></center></td>
<td><center><font face="tahoma" size="2"><?php echo ($donnees['prixfinal1b']+$donnees['semence'])*($donnees['nombre']*50); ?>€</font></center></td>
</tr>
8 réponses
-
cela se produit avec un mois qui a un accent => Février
il faut peut être chercher du côté de l'interclassement de ta table
voir cette page:
https://www.developpez.net/forums/d708481/bases-donnees/mysql/administration/interclassement-accent/ -
essaye d'afficher ta requête et de l'exécuter dans phpmyadmin (reflexe à adopter dès que tu as un doute sur une requête)
echo $req = "SELECT * FROM capvimbles WHERE inscrits=1 AND valide='1' AND datedujour='".$datedujour."'"; $reponse = mysql_query($req); // Requête SQL
-
Ca me renvoi la bonne date mais la comparaison semble négative car je n'ai rien dans mon tableau comme si les deux dates différaient alors que c'est le meme script et que lorsque j'affiche elle sont identiques.
C'est a s'arracher les cheveux
Cordialement -
tu as exécuté ta requête dans phpmyadmin ?
Si tu veux manipuler des dates dans ta table de données, le mieux (à mon sens) c'est d'utiliser des timestamp.
C'est un nombre, c'est plus facile à comparer et à manipuler qu'une chaine de caractères, parce qu'une différence de majuscule ou d'espace suffit à faire échouer ta comparaison -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Je suis bien d'accord
Le truc, c'est que la requete qui inscrit dans la table est identique a celle qui me permet de faire mon echo et la comparaison dans ma clause WHERE
Mais je commence a penser que l'erreur doit etre ailleurs car meme lorsque je rentre la date en dur (en copiant ce qu'il y a dans la table) ca ne me renvoi rien comme si le AND ne donnait rien -
inscrits est bien un champ numérique dans ta table ?
valide est bien un champ varchar ou text ou un autre alphanumerique ? -
-
Bravo et merci.
C'est bien l'accent qui pose problème.
Merci encore a tous pour votre aide.