A voir également:
- Intervalle de dates en SQL (via PHP)
- Intervalle de dates en SQL (via PHP) ✓ - Forum - PHP
- Afficher resultat requete SQL via php ✓ - Forum - PHP
- Requete SQL via php ✓ - Forum - PHP
- Afficher des données d'une base en fonction de la date via php ✓ - Forum - Webmaster
- Mise à jour d'une table d'une base de donnée SQL via requête PHP ✓ - Forum - PHP
8 réponses
zermat
- Messages postés
- 160
- Date d'inscription
- jeudi 19 juin 2014
- Statut
- Membre
- Dernière intervention
- 3 juin 2016
Code ?
Thore
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
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'));
zermat
- Messages postés
- 160
- Date d'inscription
- jeudi 19 juin 2014
- Statut
- Membre
- Dernière intervention
- 3 juin 2016
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
Thore
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
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 ?