Intervalle de dates en SQL (via PHP)
Résolu/Fermé
A voir également:
- Intervalle de dates en SQL (via PHP)
- Easy php - Télécharger - Divers Web & Internet
- Via michelin carte - Télécharger - Transports & Cartes
- Nombre de jours entre deux dates excel - Guide
- Somme si entre deux dates ✓ - Forum Excel
- Impossible d'envoyer le message via free erreur 0 - Forum Mobile
8 réponses
zermat
Messages postés
160
Date d'inscription
jeudi 19 juin 2014
Statut
Membre
Dernière intervention
3 juin 2016
16
27 juil. 2014 à 13:40
27 juil. 2014 à 13:40
Code ?
Ah oui, je l'ai encore oublié. ^^'
Je donne côté PHP :
J'ai testé le code en saisissant moi-même les dates dans le code (donc passer par un query), et la requête fonctionne, donc le problème est au passage des dates.
Je donne côté PHP :
$d_debut = $_POST['d_debut']; $d_fin = $_POST['d_fin']; // on récupère les dates $d_debut = preg_replace('#([0-3].)/([0-1].)/(2.{3})#', '$3-$2-$1', $d_debut); // on formate pour la BDD (AAA-MM-JJ) $d_fin = preg_replace('#([0-3].)/([0-1].)/(2.{3})#', '$3-$2-$1', $d_fin); $rep = $bdd->prepare('SELECT * FROM formulaire WHERE date BETWEEN :debut AND :fin'); $rep->execute(array('debut'=> $d_debut, 'fin' => $d_fin')); // puis je récupère dans un echo
J'ai testé le code en saisissant moi-même les dates dans le code (donc passer par un query), et la requête fonctionne, donc le problème est au passage des dates.
zermat
Messages postés
160
Date d'inscription
jeudi 19 juin 2014
Statut
Membre
Dernière intervention
3 juin 2016
16
27 juil. 2014 à 14:11
27 juil. 2014 à 14:11
remplacez:
$rep->execute(array('debut'=> $d_debut, 'fin' => $d_fin'));
par
$rep->execute(array(':debut'=> $d_debut, ':fin' => $d_fin'));
$rep->execute(array('debut'=> $d_debut, 'fin' => $d_fin'));
par
$rep->execute(array(':debut'=> $d_debut, ':fin' => $d_fin'));
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
zermat
Messages postés
160
Date d'inscription
jeudi 19 juin 2014
Statut
Membre
Dernière intervention
3 juin 2016
16
27 juil. 2014 à 14:50
27 juil. 2014 à 14:50
oui il y a un guillemet en plus :
$rep->execute(array(':debut'=> $d_debut, ':fin' => $d_fin')); //le guillemet à la fin
$rep->execute(array(':debut'=> $d_debut, ':fin' => $d_fin)); // ça c'est juste
$rep->execute(array(':debut'=> $d_debut, ':fin' => $d_fin')); //le guillemet à la fin
$rep->execute(array(':debut'=> $d_debut, ':fin' => $d_fin)); // ça c'est juste
Ah oui en effet, tout ça à cause d'un guillemet... Merci !
Mais maintenant que ça fonctionne, du moins que les dates sont prises en compte, quand j'exécute ma requête, ça me retourne rien du tout alors que j'ai du contenu dans ma BDD.
Une idée ? Pourtant j'ai bien fais attention de convertir mes dates au format anglais.
Mais maintenant que ça fonctionne, du moins que les dates sont prises en compte, quand j'exécute ma requête, ça me retourne rien du tout alors que j'ai du contenu dans ma BDD.
Une idée ? Pourtant j'ai bien fais attention de convertir mes dates au format anglais.
zermat
Messages postés
160
Date d'inscription
jeudi 19 juin 2014
Statut
Membre
Dernière intervention
3 juin 2016
16
27 juil. 2014 à 15:43
27 juil. 2014 à 15:43
Ajouter
echo 'debut: ' . $d_debut . '<br>';
echo 'fin: ' . $d_fin . '<br>';
avant
$rep = $bdd->prepare('SELECT * FROM formulaire WHERE date BETWEEN :debut AND :fin');
pour verifiez qu'il s'agit bien du bon format.
et comment tu fais le fetch pour recuperer le resultat ?
echo 'debut: ' . $d_debut . '<br>';
echo 'fin: ' . $d_fin . '<br>';
avant
$rep = $bdd->prepare('SELECT * FROM formulaire WHERE date BETWEEN :debut AND :fin');
pour verifiez qu'il s'agit bien du bon format.
et comment tu fais le fetch pour recuperer le resultat ?