Problème requête. Cause : date.
Résolu
tgos93
Messages postés
83
Date d'inscription
Statut
Membre
Dernière intervention
-
tgos93 Messages postés 83 Date d'inscription Statut Membre Dernière intervention -
tgos93 Messages postés 83 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai un petit problème au niveau d'une requête SQL, si quelqu'un aurait l'amabilité de me corriger, tout au moins m'expliquer pourquoi ce serait sympa. Ma requête ne sélectionne en effet aucune ligne, bien qu'elle soit aux normes alors que j'ai un résultat qui correspond à ce que je recherche en l'occurrence l'évènement 1 (voir ci-dessous) Je pense que le problème se situe au niveau de la date.
Merci !
REQUETE :
$date = date("d-m-Y");
$heure = date("H:i");
"select * from pronostic where heure_debut<=".$heure." and heure_fin>=".$heure." and date_debut<=".$date."and date_fin>=".$date;
Sachant que ma table (pronostic) comporte les champs :
id_prono
domicile
exterieur
rencontre
date_debut
date_fin
heure_debut
heure_fin
et lignes suivantes :
1
/
/
Evenement 1
2013-02-13
2013-02-14
15:30:00
20:50:00
2
/
/
Evenement 2
2013-02-15
2013-02-17
23:00:00
13:55:00
Merci !
J'ai un petit problème au niveau d'une requête SQL, si quelqu'un aurait l'amabilité de me corriger, tout au moins m'expliquer pourquoi ce serait sympa. Ma requête ne sélectionne en effet aucune ligne, bien qu'elle soit aux normes alors que j'ai un résultat qui correspond à ce que je recherche en l'occurrence l'évènement 1 (voir ci-dessous) Je pense que le problème se situe au niveau de la date.
Merci !
REQUETE :
$date = date("d-m-Y");
$heure = date("H:i");
"select * from pronostic where heure_debut<=".$heure." and heure_fin>=".$heure." and date_debut<=".$date."and date_fin>=".$date;
Sachant que ma table (pronostic) comporte les champs :
id_prono
domicile
exterieur
rencontre
date_debut
date_fin
heure_debut
heure_fin
et lignes suivantes :
1
/
/
Evenement 1
2013-02-13
2013-02-14
15:30:00
20:50:00
2
/
/
Evenement 2
2013-02-15
2013-02-17
23:00:00
13:55:00
Merci !
A voir également:
- Problème requête. Cause : date.
- Erreur de requete facebook - Forum Facebook
- L'opérateur ou l'administrateur a refusé la requête ✓ - Forum Windows
- Quelle requête écrire pour demander au moteur de recherche de présenter de préférence les pages web traitant de tennis mais pas de tennis de table ✓ - Forum Java
- Quelle requête écrire pour demander au moteur de recherche de présenter de préférence les pages web traitant de tennis mais pas de tennis de table ? ✓ - Forum Loisirs / Divertissements
- Erreur d'exécution de la requete erreur inconnue - Forum Logiciels
1 réponse
Bonjour,
ce que tu cherches à faire ne peut pas fonctionner, tes variables $date et $heure sont des chaines de caractères, et dans ta requête, tu essayes de comparer si cette chaîne est supérieure ou inférieure à ce que tu as en base, mais tu ne peux pas faire ça avec une chaîne de caractère.
C'est comme si tu voulais faire
"truc" <= "cheval"
ça n'a aucun sens
il faudrait que tu utilises des timestamp, d'ailleurs ça simplifierait ta structure de base de données.
Tu n'aurais plus besoin de garder "date" et "heure", tout serait contenu dans ton timestamp, ton traitement serait donc plus simple.
ce que tu cherches à faire ne peut pas fonctionner, tes variables $date et $heure sont des chaines de caractères, et dans ta requête, tu essayes de comparer si cette chaîne est supérieure ou inférieure à ce que tu as en base, mais tu ne peux pas faire ça avec une chaîne de caractère.
C'est comme si tu voulais faire
"truc" <= "cheval"
ça n'a aucun sens
il faudrait que tu utilises des timestamp, d'ailleurs ça simplifierait ta structure de base de données.
Tu n'aurais plus besoin de garder "date" et "heure", tout serait contenu dans ton timestamp, ton traitement serait donc plus simple.
Cependant j'ai fais 2 champs différents car quand j'ai à remplir ma base depuis la partie admin du site, il n'existe pas de <input type="datetime"> mais des <input type="date"> et <input type="time"> donc pour le traitement je ne savais pas comment allier les deux donc j'ai fais comme ceci ;)
Tu sais que firefox ne les reconnait pas ?
en tout cas ça ne va pas te faciliter la tâche pour la manipulation...
En tout cas si tu veux faire des comparaisons de dates, tu n'auras pas le choix, il te faut du timestamp
Je prends en considération tes conseils. Je vais essayer jusqu'à ce que ça marche quitte à y passez la soirée ^^.
Je te tiens au courant ;)
Merci beaucoup.