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 :

requête avec date


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Août 2009
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 26
    Par défaut requête avec date
    salut j'ai un problème avec ma requète .je voudrai afficher les personnes abscentes mais j'arrive pas .
    voici comment j'essaie de faire :

    $debut = mysql_real_escape_string($_POST['date1']);
    $fin = mysql_real_escape_string($_POST['$_POST['date2']);
    $date_Enr = mysql_real_escape_string($_POST['date_Enr']); ===>correspond
    NB : les champs des dates sont en VARCHAR
    à la date du depart de l'agent.

    voici ma requète :
    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
       <?php
    //Se connecter a la base de donnée 
    include("conf.php");
    $debut = $_POST['date1']; 
    $fin = $_POST['date2']; 
     
    $dateA = $debut;
    $annee = substr($dateA, 6, 4);
    $mois = substr($dateA, 3, 2);
    $jour = substr($dateA, 0, 2);
    //echo $jour . '-' . $mois . '-' . $annee;
    //echo $annee . '/' . $mois . '/' . $jour; 
    $date3=$annee . '-' . $mois . '-' . $jour;
     
    $dateB = $fin;
    $annee1 = substr($dateB, 6, 4);
    $mois1 = substr($dateB, 3, 2);
    $jour1 = substr($dateB, 0, 2);
    //echo $jour1 . '-' . $mois1 . '-' . $annee1;
    //echo $annee1 . '/' . $mois1 . '/' . $jour1; 
    $date4=$annee1 . '-' . $mois1 . '-' . $jour1;
     
    $clause = "(date_Enr BETWEEN '$date3' and '$date4')";
    // on crée la requête SQL
    //$date_du_jour = date('d/m/Y');
    //$sql = "SELECT * FROM abscence WHERE '".$date_du_jour."'>= debut AND '".$date_du_jour."'<= fin  ORDER BY id";
    $sql = "SELECT * FROM abscence WHERE ".$clause."ORDER BY id ";
    // on envoie la requête
    $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
    if(mysql_num_rows($req)>0){echo'<table  width="389" border="0" align="center">
      <tr>
        <td bgcolor="#999999"><blink>Il est TOUJOURS  encore en congé !!!!!!!!</blink></td>
      </tr>
    </table>';} else{echo'<table  width="389" border="0" align="center">
      <tr>
        <td bgcolor="#999999"><blink>Il n\'est PLUS  encore en congé !!!!!!!!</blink></td>
      </tr>
    </table>';}   
    ?>
    merci de bien vouloir m'aider.
    le resultat qui s'affiche est : Aucun resultat !!

  2. #2
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    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
    Billets dans le blog
    12
    Par défaut
    Bonjour,

    ton problème vient du fait que tu suives tes dates en VARCHAR. Tu te retrouves avec du texte en guise de date et tu perds du coup les fonctionnalités natives de filtrage de ta base de données.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $clause = "(date_Enr BETWEEN '$date3' and '$date4')";
    Le problème se situe ici : BETWEEN n'accèpte que des valeurs numériques ou des dates et aucun texte.

    Ensuite en PHP, tu as des fonctions natives qui te permettent de gérer tes dates sans aucune cuisine : comme par exemple : DateTime::createFromFormat().

Discussions similaires

  1. Requête avec date comme critère de sélection
    Par deep-diver dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 18/09/2006, 11h40
  2. Pb de requête avec date
    Par tedparker dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 24/07/2006, 10h57
  3. Réponses: 4
    Dernier message: 13/02/2006, 18h58
  4. Problème de requête avec dates
    Par charleshbo dans le forum Access
    Réponses: 4
    Dernier message: 08/02/2006, 00h17
  5. Requête avec dates
    Par skyman272 dans le forum Access
    Réponses: 11
    Dernier message: 30/01/2006, 10h16

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