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 par date


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé
    Homme Profil pro
    Technicien en télécommunication
    Inscrit en
    Mai 2013
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Technicien en télécommunication
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2013
    Messages : 199
    Par défaut Recherche par date
    Bonjour,
    dans mon moteur de recherche actuel je fais des recherches sur plusieurs critères mais la recherche avec la date ne fonctionne pas (la recherche par critères fonctionne parfaitement et s'affiche bien dans un tableau).

    Je zappe quelque chose ... pouvez-vous m'aidez ?
    Voici le code

    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
     
    <form action ="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
     
     
     
     
        <br/>
     
        <label for="query">Recherche:</label>
                <input type="search" name="query" " maxlength="80" size="80" id="query"/><br/>
     
                <br/>            
     
                Recherche au niveau de:
                <select name="filtre">                
                    <option value="tbl_form">Formulaire</option>
                </select><br/>
                <br/>
     
                <input type="submit" value="rechercher">
    </form>
     
     
     
    </body>
    </html>
     
    <?php
     
     
        $resultats = "";
     
     
     
        // Traitement de la requête
        if(isset($_POST['query']) && !empty($_POST['query'])){
     
            // Si l'utilisateur à rentré quelque chose, on traite sa requête
            $query = preg_replace("#[^a-zA-Z ?0-9]#i", "", $_POST['query']);
     
            if($_POST['filtre'] == "Site entier"){
     
            }   else if ($_POST['filtre'] == "tbl_form") {
                $sql = "SELECT date, nom, ville FROM tbl_form WHERE date LIKE ? OR nom LIKE ? OR ville LIKE ?  ORDER BY date DESC, nom DESC";
            }
     
            include('src/connection.php');
     
            $req = $db->prepare($sql);
            $req->execute(array('%'.$query.'%', '%'.$query.'%', '%'.$query.'%'));
            $count = $req->rowCount();
     
            if ($count >= 1){
     
     
                 echo "$count résultat(s) trouvé(s)<hr/>";
     
     
                   echo'
                    <table>
                    <tr>
                        <th>Date</th>
                        <th>Nom</th>
                        <th>Ville</th>
                    </tr>';
     
     
     
                 //while($data = $req->fetch(PDO::FETCH_OBJ)){
                while($data = $req->fetch()){
     
     
                    echo'   
                    <tr>
                        <td class="tdcenter">'.$data['date'].'</td>
                        <td class="tdcenter">'.$data['nom'].'</td>
                        <td class="tdcenter">'.$data['ville'].'</td>
                        
    
                        
                        
                        
                    </tr>';
     
     
                    //echo 'Date:'.$data->date. ' ,H Départ:' .$data->h_depart. ' ,H Rentrée:' .$data->h_rentree. ' ,Adresse:' .$data->adresse. ',' .$data->numero. '   ,Ville:' .$data->ville. ' ,Rapport:' .$data->num_rapport. ' ,Chauffeur:' .$data->chauffeur. ' ,Convoyeur:' .$data->convoyeur. ' ,Supp:' .$data->supp. ' ,Nbr km:' .$data->nbr_km. ' ,Hopital:' .$data->hopital. ' ,Prise en chare:' .$data->prise_en_charge. '<br/>';
                 }  
                 '</table>'; 
     
            } else {
                echo "0 résultat trouvé<hr/>";
            }
        }
     
     
    ?>
     
    <br/>
    <br/>
    <br/>
     
     
    <?php echo $resultats; ?>
     
    <?php }  ?>

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Quel est le type de ta colonne Date en base ? et quel format de date l'utilisateur peut-il rentrer dans son champ ?

    Au passage, nommer une colonne "Date" n'est pas la meilleure idée du monde, vu que DATE est un mot réservé en MySQL.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Membre éclairé
    Homme Profil pro
    Technicien en télécommunication
    Inscrit en
    Mai 2013
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Technicien en télécommunication
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2013
    Messages : 199
    Par défaut
    J'ai mis la date en format text dans ma db, pour la rentrée de la date par les utilisateurs elle est en jj/mm/aa (champ avec un datepiker).

    Nom : Format heure.JPG
Affichages : 125
Taille : 24,7 Ko

  4. #4
    Membre éclairé
    Homme Profil pro
    Technicien en télécommunication
    Inscrit en
    Mai 2013
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Technicien en télécommunication
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2013
    Messages : 199
    Par défaut
    J'ai renommé mon champ date par date_tbl_1 mais ça ne fonctionne toujours pas

    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    <form action ="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> 
     
        <br/>
     
        <label for="query">Recherche:</label>
                <input type="search" name="query" " maxlength="80" size="80" id="query"/><br/>
     
                <br/>            
     
                Recherche au niveau de:
                <select name="filtre">                
                    <option value="tbl_form">Formulaire</option>
                </select><br/>
                <br/>
     
                <input type="submit" value="rechercher">
    </form>
     
     
     
    </body>
    </html>
     
    <?php
     
     
        $resultats = "";
     
     
     
     
        if(isset($_POST['query']) && !empty($_POST['query'])){
     
     
            $query = preg_replace("#[^a-zA-Z ?0-9]#i", "", $_POST['query']);
     
            if($_POST['filtre'] == "Site entier"){
     
            }   else if ($_POST['filtre'] == "tbl_form") {
                $sql = "SELECT date_tbl_1, nom, ville FROM tbl_form WHERE date_tbl_1 LIKE ? OR nom LIKE ? OR ville LIKE ?  ORDER BY date_tbl_1 DESC, nom DESC";
            }
     
            include('src/connection.php');
     
            $req = $db->prepare($sql);
            $req->execute(array('%'.$query.'%', '%'.$query.'%', '%'.$query.'%'));
            $count = $req->rowCount();
     
            if ($count >= 1){
     
     
                 echo "$count résultat(s) trouvé(s)<hr/>";
     
     
                   echo'
                    <table>
                    <tr>
                        <th>Date</th>
                        <th>Nom</th>
                        <th>Ville</th>
                    </tr>';
     
     
                while($data = $req->fetch()){
     
     
                    echo'   
                    <tr>
                        <td class="tdcenter">'.$data['date_tbl_1'].'</td>
                        <td class="tdcenter">'.$data['nom'].'</td>
                        <td class="tdcenter">'.$data['ville'].'</td>
                    </tr>';
     
     
                 }  
                 '</table>'; 
     
            } else {
                echo "0 résultat trouvé<hr/>";
            }
        } 
     
    ?>
     
    <br/>
    <br/>
    <br/>
     
     
    <?php echo $resultats; ?>
     
    <?php }  ?>

  5. #5
    Membre Expert
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Par défaut
    Deux choses qui sont obligatoires.

    1 - les dates doivent être stockées au format SSAAMMJJ. Ensuite ça peut être SSAA-MM-JJ , SSAA/MM/JJ ou n’importe quoi du moment qu’on a le siècle, l’année le mois et le jour dans cet ordre. On peut tourner le problème dans tous les sens il n’y a pas d’autre format qui permette de trier, sélectionner les dates correctement. Si tu as stocké tes dates en format JJ/MM/SSAA et bien soit tu passes par des fonctions qui te transforment ton format en format correct soit tu changes ton fusil d’épaule et tu les mets ai bon format. Je te déconseille la première alternative car en plus d’être tordu ça ne fait pas sérieux. Donc, change ton format de stockage et pendant que tu y es mets le champ au format date. Pour la petite histoire, mettre une date au format SSAAMMJJ dans un champ de type char fonctionnera mais ce n’est pas propre car il faudra que tu convertisse la valeur en date pour pouvoir faire des sélections sur des calculs de dates (par exemple toutes les dates vieilles de plus de 30 jours).
    2 - pas de like. un bon between ou des >, <, etc... suffisent.

Discussions similaires

  1. [AC-2000] Recherche par date comprise dans un intervalle
    Par polo31 dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 24/04/2020, 16h56
  2. [MySQL] Faire une recherche par DATE
    Par bullrot dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 14/10/2008, 14h38
  3. Faire une recherche par date
    Par ghnawfal dans le forum JSF
    Réponses: 13
    Dernier message: 11/04/2008, 07h35
  4. recherche par date vba excel
    Par fred014 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 29/03/2007, 13h35
  5. Moteur de recherche par date
    Par Prue dans le forum ASP
    Réponses: 17
    Dernier message: 27/08/2003, 16h07

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