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 :

Recherche sur Date inférieure à la date saisie [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 57
    Par défaut Recherche sur Date inférieure à la date saisie
    Bonjour,

    Je souhaite effectuer une recherche sur tous les enregistrements dont la date est inférieur ou égale à la date saisie dans mon formulaire.

    J'obtient bien tous les enregistrements dont la date est inférieur à la date saisie, mais pas ceux qui y sont égaux.

    Voici ma requete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM table WHERE chdate <= $datesaisie
    Je n'est aucun problème pour une requete de même type avec l'opérateur >=
    alors je comprend pas ?

    Merci d'avance.

  2. #2
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Par défaut
    Bonjour,

    La date saisie est elle au même format que le champ chdate de la table ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 57
    Par défaut
    Lors de la saisie non, elle est au format jj/mm/aaaa mais j'utilise une fonction pour la convertir au format aaaa-mm-jj de la BD, donc le format de la date dans ma requete est identique au format de celui contenu dans la BD.

  4. #4
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Par défaut
    C'est quoi le type du champ chdate dans la BDD?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 57
    Par défaut
    Le champs est de type datetime

  6. #6
    Membre Expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Par défaut
    Citation Envoyé par gpanpan Voir le message
    Le champs est de type datetime
    C'est de la que vient le probleme, il part du principe que dans l'ordre alphabétique, "10/11/2007 12:25:33" est supérieur a "10/11/2007" donc il t'exclut toutes les lignes où la date est celle du jour. Donc soit en dur tu rajoutes dans ta requete 23:59:59 soit tu utilises les fonctions de date de mysql pour comparer la vraie date, en dehors de l'heure.

  7. #7
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Par défaut
    Pas mieux !

    Tu peux pas comparer un date à un datetime

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $la_date_saisie = "2007-10-11";
    $date_acomparer= $la_date_saisie . " " . date("H:i:s");
     
    // ou alors plus simple :
    $date_a_comparer = $la_date_saisie . " 00:00:00" ;
    Mais il y a peut-être un moyen de rechercher que sur la première partie du champ datetime..

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 57
    Par défaut
    C'est bon

    j'ai pris la méthode la plus simple comme tu m'as indiqué :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $date_a_comparer = $la_date_saisie . " 00:00:00" ;
    Et sa fonctionnel impec.

    Merci

  9. #9
    Membre averti Avatar de Shinn77
    Inscrit en
    Juin 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Juin 2007
    Messages : 51
    Par défaut
    Moui ou tu aurais pu faire ça de cette facon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <?php
          // code
          $sql = "SELECT * FROM table WHERE date(chdate) <= date(STR_TO_DATE('$datesaisie', '%d/%m/%Y'))";
          $req = mysql_query($sql) or die (mysql_error());
          // code
    ?>
    STR_TO_DATE est une fonction MySQL qui convertit une string en format date reconnue par MySQL.
    Dans cette exemple $datesaisie est de type dd/mm/YYYY,
    autrement avec STR_TO_DATE : %d/%m/%Y

    Voilà,

    Au plaisir,

    Shinn77

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 57
    Par défaut
    Merci, pour l'info.

    je vais regarder ça.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] MFC sur colonne avec date inférieure à la date du jour
    Par jopont dans le forum Excel
    Réponses: 6
    Dernier message: 16/03/2015, 08h39
  2. Suppression date inférieur à la date MAX
    Par drumtof dans le forum Oracle
    Réponses: 3
    Dernier message: 04/07/2011, 16h04
  3. Réponses: 13
    Dernier message: 23/06/2011, 13h36
  4. Filtrer des dates inférieures à la date du jour
    Par 67jero dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 30/10/2009, 19h10
  5. Afficher une date inférieure à la date dans SQL
    Par sandddy dans le forum Langage SQL
    Réponses: 6
    Dernier message: 02/11/2007, 15h49

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