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

Langage PHP Discussion :

Recherche de date


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 79
    Points : 35
    Points
    35
    Par défaut Recherche de date
    bonsoir
    je souhaiterai pourvoir faire une recherche dans ma base de donnée de toutes les date d'inscription superieur a 3 mois a partir de la date du jour.
    j'ai crée ca :
    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
     
    $daterechercher = strtotime("now - 92 days");
     
     
    connection a ma base' .........................................
     
    $messagesParPage=5; //Nous allons afficher 5 messages par page.
     
    $retour_total= mysql_query ("SELECT COUNT(*) AS total from annonce WHERE  date > '$daterechercher' ") or die (mysql_error()); //Nous récupérons le contenu de la requete dans $retour_total
    $donnees_total=mysql_fetch_assoc($retour_total); //On range retour sous la forme d'un tableau.
    $total=$donnees_total['total']; //On récupere le total pour le placer dans la variable $total.
     
    //Nous allons maintenant compter le nombre de pages.
    $nombreDePages=ceil($total/$messagesParPage);
     
    if(isset($_GET['page'])) // Si la variable $_GET['page'] existe...
    {
         $pageActuelle=intval($_GET['page']);
     
         if($pageActuelle>$nombreDePages) // Si la valeur de $pageActuelle (le numéro de la page) est plus grande que $nombreDePages...
         {
              $pageActuelle=$nombreDePages;
         }
    }
    else // Sinon
    {
         $pageActuelle=1; // La page actuelle est la n°1    
    }
     
    $premiereEntree=($pageActuelle-1)*$messagesParPage; // On calcul la premiere entrée a lire
     
    // La requete sql pour récupérer les messages de la page actuelle.
    $retour_messages=mysql_query("select * from annonce WHERE  date > '$daterechercher' ORDER BY id DESC LIMIT ".$premiereEntree.', '.$messagesParPage.'');
     
    while($donnees_messages=mysql_fetch_assoc($retour_messages))
     
    etc etc
    le soucis c'est que dans mon resultat j'ai toute la base de donnée..

    merci a vous

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Utilise les fonctions mysql :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE date < DATE_ADD(NOW(), INTERVAL 3 MONTH)

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 79
    Points : 35
    Points
    35
    Par défaut
    g corriger en mettant ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    retour_total= mysql_query ("SELECT COUNT(*) AS total from annonce WHERE date < DATE_ADD(NOW(), INTERVAL 3 MONTH)") or die (mysql_error());
    et j'ai toujours le méme resultat

    toute ma base de donnée a été selectionné...dans ma pagination...

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    C'est l'autre requete qu'il faut changer.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 79
    Points : 35
    Points
    35
    Par défaut
    j'ai aussi essayer que l'autre et méme les deux et aussi en changeant le signe superieur et inferieur mais ce n'est pas bon !!

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Sans plus de code ET une description plus précise de ton problème ("toute la requete dans la pagination" ca ne veut pas dire grand chose) nous ne pouvons pas t'aider plus.

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 79
    Points : 35
    Points
    35
    Par défaut
    voici l integralité du code d'origine avant tes propositions de modifications:

    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
    <?
    $daterechercher = strtotime("now - 92 days");
    // Connexion au serveur mysql
    $connect = mysql_connect(xxxxx, xxxxx,xxxxx)
    or die('Impossible de se connecter : ' . mysql_error());
    // sélection de la base de données
    mysql_select_db(xxxxx, $connect);
     
     
    $messagesParPage=5; //Nous allons afficher 5 messages par page.
     
    $retour_total= mysql_query ("SELECT COUNT(*) AS total from xxxxx WHERE  date > '$daterechercher' ") or die (mysql_error()); //Nous récupérons le contenu de la requete dans $retour_total
    $donnees_total=mysql_fetch_assoc($retour_total); //On range retour sous la forme d'un tableau.
    $total=$donnees_total['total']; //On récupere le total pour le placer dans la variable $total.
     
    //Nous allons maintenant compter le nombre de pages.
    $nombreDePages=ceil($total/$messagesParPage);
     
    if(isset($_GET['page'])) // Si la variable $_GET['page'] existe...
    {
         $pageActuelle=intval($_GET['page']);
     
         if($pageActuelle>$nombreDePages) // Si la valeur de $pageActuelle (le numéro de la page) est plus grande que $nombreDePages...
         {
              $pageActuelle=$nombreDePages;
         }
    }
    else // Sinon
    {
         $pageActuelle=1; // La page actuelle est la n°1    
    }
     
    $premiereEntree=($pageActuelle-1)*$messagesParPage; // On calcul la premiere entrée a lire
     
    // La requete sql pour récupérer les messages de la page actuelle.
    $retour_messages=mysql_query("select * from xxxxx WHERE date > '$daterechercher'  ORDER BY id DESC LIMIT ".$premiereEntree.', '.$messagesParPage.'');
     
    while($donnees_messages=mysql_fetch_assoc($retour_messages))
     // On lit les entrées une a une grâce a une boucle
    {
         //Je vais afficher les messages dans des petits tableaux. C'est a vous d'adapter pour votre design...
         //De plus j'ajoute aussi un nl2br pour prendre en compte les sauts a la ligne dans le message.
        echo '<table width="934" border="1" align="center" cellpadding="1" cellspacing="1">
      <tr>
        <td width="275" height="61" bgcolor="#FFFFFF"><p><strong>&nbsp;Identification : n&deg; </strong></p>
        <p><strong>'.stripslashes($donnees_messages['id']).' </strong></p></td>
        <td width="311"><p><strong>&nbsp;Email :</strong></p>
          <p><strong>'.stripslashes($donnees_messages['email']).'</strong></p></td>
        <td width="340"><p><strong>&nbsp; Date d inscription</strong><strong> :</strong></p>
          <p><strong>&nbsp;'.nl2br(stripslashes($donnees_messages['date'])).'</strong></p></td>
      </tr>
      <tr>
        <td height="32" colspan="3"><div align="center"><strong>&nbsp;<a href="effacementannonce.php?id=login='.stripslashes($donnees_messages['id']).'">Effacer</a></strong></div></td>
      </tr>
    </table>';
        //J'ai rajouté des sauts a la ligne pour espacer les messages.   
    }
     
    echo '<p align="center">Page : '; //Pour l'affichage, on centre la liste des pages
    for($i=1; $i<=$nombreDePages; $i++) //On fait notre boucle
    {
     
         //On va faire notre condition
         if($i==$pageActuelle) //Si il s'agit de la page actuelle...
         {
             echo ' [ '.$i.' ] '; 
         }	
         else //Sinon...
         {
              echo ' <a href="xxxxxxxxx?page='.$i.'">'.$i.'</a> ';
         }
    }
     
    echo '</p>';
    ?>
    *


    j'espere que cela vous aideras...merci bcp

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    mais ton champ date contient des timestamp ou des dates mysql ?

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 79
    Points : 35
    Points
    35
    Par défaut
    date timestamp Non CURRENT_TIMESTAMP

    donc timestamp...

    c'est pas un soucis si je dois changer ^^

  10. #10
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Quand tu executes ta requete dans phpmyadmin, tu vois les lignes que tu veux ?

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 79
    Points : 35
    Points
    35
    Par défaut
    je ne saisie pas tres bien ta question...tu veux dire si mon resultat obtenue suite a la requete de recherche de date de plus de 3 mois ?

    la moitie de mes dates son superieur a 3 mois mais a l'affichage j'ai une pagination de la totalité de la base comme si ma requete n'etais pas filtré par

    mon "WHERE......"

  12. #12
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    C'est la pagination ou l'affichage des résultats qui n'est pas bon ?

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 79
    Points : 35
    Points
    35
    Par défaut
    je pense que c'est plutot la selection dansla base de donnée , il devrait y avoir que 4 ou 5 dates et je me retrouve avec la totalite de la base en affichage..
    donc ma condition "where"...n'as pas du etre executé je pense

  14. #14
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Et si tu mets ta requete dans phpmyadmin tu vois quoi ?

  15. #15
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 79
    Points : 35
    Points
    35
    Par défaut
    ca je ne sais pas faire..peut tu m'expliquer plus precisement la procedure ?

  16. #16
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Salut,

    PhpMyAdmin c une application faite en php que tu télécharges et que tu mets dans le répertoire des applications WEB.

    Elle te permet d'administrer les bases de données Mysql, de tester des requêtes etc ...

    Regardes sur le WEB, tu en pas pour plus d'une demie heure pour la faire tourner (téléchargement, lecture doc etc ...)

  17. #17
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 79
    Points : 35
    Points
    35
    Par défaut
    merci a toi mais je ne disais pas que je ne connaissait pas Mysql...je disais simplement je ne sais pas comment inserer directement une requete dans Mysql


  18. #18
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 958
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 958
    Points : 4 387
    Points
    4 387
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Utilise les fonctions mysql :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE date < DATE_ADD(NOW(), INTERVAL 3 MONTH)
    inscription avant "aujourd'hui + 3 mois" c'est toujours la totalité des inscriptions…
    à moins qu'on puisse s'inscrire dans le futur…

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    WHERE date < DATE_SUB(NOW(), INTERVAL 3 MONTH)
    vous retournera les inscriptions vieilles de plus de 3 mois…

    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    WHERE date >= DATE_SUB(NOW(), INTERVAL 3 MONTH)
    vous retournera les inscriptions qui datent de moins de 3 mois…

  19. #19
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 79
    Points : 35
    Points
    35
    Par défaut
    merci JeitEmgie..ca marche ..nickel !!
    un grand merci a vous deux !!

Discussions similaires

  1. <= (plus petit égal) + recherche de date
    Par Bindy dans le forum Langage SQL
    Réponses: 4
    Dernier message: 19/07/2006, 10h15
  2. [débutant] recherche sur dates en VBA
    Par tojiji dans le forum Access
    Réponses: 4
    Dernier message: 10/07/2006, 11h51
  3. [VBA-E]Recherche de date dans plusieurs feuilles
    Par atypik dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 05/04/2006, 20h36
  4. [VB6] Recherche de dates
    Par tim69000 dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 22/03/2006, 15h40
  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