IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Comparaison d'une date PHP (formulaire) avec SQL


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 17
    Points : 17
    Points
    17
    Par défaut Comparaison d'une date PHP (formulaire) avec SQL
    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

  2. #2
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 274
    Points
    3 274
    Par défaut
    Les dates sous Mysql sont au format YYYY-MM-DD HH:MM:SS, il faut que tu formates ta date dans ce format (tu peux omettre la partie heure si tu n'en as pas l'utilité).
    Un message utile vous a aidé ? N'oubliez pas le

    www.simplifions.fr - Simplifier vos comptes entre amis !

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 17
    Points : 17
    Points
    17
    Par défaut
    Merci de ta réponse rapide.
    Sans abuser, saurais-tu me dire comment / à quel moment faire le formatage ? C'est ce que j'avais essayé de faire, mais je crois que je me suis emmêlé les pinceaux.
    Il doit se faire sur la partie PHP ou dans la requête SQL ?

  4. #4
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    tu formates en PHP et ensuite tu passes la valeur ainsi obtenue au SQL

Discussions similaires

  1. Réponses: 5
    Dernier message: 20/11/2008, 11h20
  2. [MySQL] comparaison d'une date avec la date système
    Par kawther dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 23/12/2007, 03h05
  3. [SQL] Comparaison d'une date au format FR avec la date du jour au format US
    Par delcada dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 22/10/2007, 15h22
  4. [Oracle] Comparaison d'une date avec la date du jour.
    Par mika0102 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 12/10/2007, 11h52
  5. charger une date par défaut avec sql Loader
    Par top-dogg dans le forum SQL*Loader
    Réponses: 15
    Dernier message: 18/12/2006, 10h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo