Bonjour,
Je sèche depuis plusieurs jours sur un problème de comparaison de date, entre l'une saisie sur un formulaire PHP, et l'autre stockée dans ma base mysql. J'ai lu beaucoup (beaucoup..) de doc et posts sur le sujet, mais je crois que c'est encore pire maintenant
L'utilisateur saisie son matricule et sa date de naissance (initialement, j'avais mis un champ au format texte, mais comme je bloquais j'ai mis 3 listes (jour, mois, année)). L'idée est de vérifier dans la base que l'on a bien le couple login / date de naissance.
Voici le bout de code en question :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 // Récupération des données saisies $login = 'APH'.safehtml($_POST['login']); $_SESSION['aph']=$login; $ddn = safehtml($_POST['ddn']); $jour = safehtml($_POST['jour']); $mois = safehtml($_POST['mois']); $annee = safehtml($_POST['annee']); // Création de la date $ddn = new DateTime(); $ddn->setdate($annee,$mois,$jour); require("/home/antha/www/m/sql.php"); // Si une date et un login sont saisis, comparaison avec la base if($login && $ddn){ echo "lance sql"; $requete = $bdd->prepare(" SELECT nom as p_nom, DATE_FORMAT(ddn, '%d/%m/%Y') as p_ddn, titre as p_titre FROM praticiens WHERE aph = :login AND ddn = :ddn"); $requete->execute(array('login'=>$login, 'ddn'=>$ddn->format('y/m/d'))); $resultat = $requete->fetch(); } $ddn2 = new datetime($resultat['p_ddn']); echo $ddn2->format("d/m/y"); if (!$resultat){...
Je n'arrive pas à faire en sorte que les deux dates soient formatées de la même façon... J'ai lu tellement de choses différentes que je finis par ne plus m'y retrouver.
1) comment bien formater les dates en amont ?
2) comment bien écrire la requête si le pb vient de là ?
J'avais rajouté des echos pour vérifier au fil de l'eau ce qu'il se passait, mais sans que cela ne m'éclaire plus que cela.
Merci par avance pour votre aide !
Pierre
Partager