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 :

$date du jour - créer une variable $today pour comparaison [PDO]


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Femme Profil pro
    Intégrateur Web
    Inscrit en
    Mai 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Mai 2015
    Messages : 14
    Par défaut $date du jour - créer une variable $today pour comparaison
    Bonjour,
    Je suis entrain de créer un site annuaire, et il y a une partie "Agenda". Dans celle-ci les personnes membres peuvent ajouter des événements et après ces événements apparaissent chacun dans des onglets rangés par :
    - en ce moment
    - a venir
    - passé.

    Mon problème c'est que mes événements "en ce moment" ne s'affichent pas et je ne comprends pas pourquoi. J'ai regardé sur plein de forum, de site et sur la nomemclature php mais je n'ai pas trouvé d'où vient le problème.

    Voici mon code qui ne marche pas pour la catégorie "En ce moment cela affiche les événement à venir or ce n'est pas le but :
    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
    <h2 class="souligne">En ce moment</h2>
    <?php
     
    $today = date("d-m-Y");
    $reponse = $pdo->query("SELECT * FROM agenda WHERE duree = '$today'");
    $donnees = $reponse->fetch();   
    // On affiche chaque entrée une à une
    while ($donnees =$reponse->fetch(PDO::FETCH_BOTH))
    {
    ?>               
    <h3><?php echo $donnees['titre']; ?></h3>     
    <p><strong>Lieu</strong> : <?php echo $donnees['lieu']; ?></p><   
    <p><strong>Date</strong> : <?php echo $donnees['duree']; ?></p>     
    <p><?php echo $donnees['description']; ?></p>                 
       <?php
       }
       $reponse->closeCursor(); // Termine le traitement de la requête
       ?>
    Et maintenant voici la catégorie "a venir" qui elle fonctionne et affiche bien les événement qui n'ont pas encore eu lieu.
    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
    <h2 class="souligne">Evénements à venir</h2>
    <?php
    $today = date("d-m-Y");
    $reponse = $pdo->query("SELECT * FROM agenda WHERE duree > '$today'");
    $donnees = $reponse->fetch();   
    while ($donnees = $reponse->fetch(PDO::FETCH_BOTH))             
    {
    ?>
    <h3><?php echo $donnees['titre']; ?></h3>
    <p><strong>Lieu</strong> : <?php echo $donnees['lieu']; ?></p>
    <p><strong>Date</strong> : <?php echo $donnees['duree']; ?></p>
    <p><?php echo $donnees['description']; ?></p> <br/>               
    <?php
    }
    $reponse->closeCursor(); // Termine le traitement de la requête
    ?>
    La seule différence c'est donc sur cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $reponse = $pdo->query("SELECT * FROM agenda WHERE duree > '$today'");
    Merci de votre aide

  2. #2
    Modérateur
    Avatar de Kreepz
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2011
    Messages : 681
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Et lorsque tu exécute cette requête dans ta BDD te renvoie t'elle quelque chose?

    SELECT * FROM agenda WHERE duree = '$today';
    Pensez à regarder nos cours et tutoriels PHP ainsi que notre FAQ PHP avant de poser votre question!
    Un message vous a aidé, n'oubliez pas le

  3. #3
    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
    Salut,

    pour ce qui est des questions de dates tu dois toujours les manipuler en interne (PHP, MYSQL...) au format Année-Mois-Jour et tu les formate au besoin lors de l'affichage.

  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
    Par défaut
    Ta colonne "duree" est de quel type ?
    Au passage "duree" pour une colonne qui contient des dates c'est assez déroutant.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre averti
    Femme Profil pro
    Intégrateur Web
    Inscrit en
    Mai 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Mai 2015
    Messages : 14
    Par défaut
    Effectivement comme ce n'était pas en "année mois jour" j'ai changé cela pour que ça corresponde au format de ma base de donnée qui est de type : date donc Y-m-d
    mais maintenant c'est pire, car non seulement la rubrique "en ce moment" ne marche toujours pas, mais celle "a venir" ne marche plus du tout non plus. Rien ne s'affiche
    ce qui me donne :
    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
    <h2 class="souligne">En ce moment</h2>
    <?php
    $today = date("Y-m-d");
    $reponse = $pdo->query("SELECT * FROM agenda WHERE duree = '$today'");
    $donnees = $reponse->fetch();   
    // On affiche chaque entrée une à une
    while ($donnees =$reponse->fetch(PDO::FETCH_BOTH))
    {
    ?>               
    <h3><?php echo $donnees['titre']; ?></h3>     
    <p><strong>Lieu</strong> : <?php echo $donnees['lieu']; ?></p><   
    <p><strong>Date</strong> : <?php echo $donnees['duree']; ?></p>     
    <p><?php echo $donnees['description']; ?></p>                 
       <?php
       }
       $reponse->closeCursor(); // Termine le traitement de la requête
       ?>
     
    <h2 class="souligne">A venir</h2>
    <?php
     
    $today = date("Y-m-d");
    $reponse = $pdo->query("SELECT * FROM agenda WHERE duree > '$today'");
    $donnees = $reponse->fetch();   
    // On affiche chaque entrée une à une
    while ($donnees =$reponse->fetch(PDO::FETCH_BOTH))
    {
    ?>               
    <h3><?php echo $donnees['titre']; ?></h3>     
    <p><strong>Lieu</strong> : <?php echo $donnees['lieu']; ?></p><   
    <p><strong>Date</strong> : <?php echo $donnees['duree']; ?></p>     
    <p><?php echo $donnees['description']; ?></p>                 
       <?php
       }
       $reponse->closeCursor(); // Termine le traitement de la requête
       ?>
    Merci de me donner des pistes éventuelles pour résoudre ça

  6. #6
    Modérateur
    Avatar de Kreepz
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2011
    Messages : 681
    Billets dans le blog
    1
    Par défaut
    Pourquoi faire deux fetch?

    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    $donnees = $reponse->fetch();   // On affiche chaque entrée une à une while($donnees =$reponse->fetch(PDO::FETCH_BOTH))

    Un seul ne suffit pas:
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    // On affiche chaque entrée une à une
    while($donnees =$reponse->fetch(PDO::FETCH_BOTH))
    Pensez à regarder nos cours et tutoriels PHP ainsi que notre FAQ PHP avant de poser votre question!
    Un message vous a aidé, n'oubliez pas le

  7. #7
    Membre averti
    Femme Profil pro
    Intégrateur Web
    Inscrit en
    Mai 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Mai 2015
    Messages : 14
    Par défaut
    Citation Envoyé par Kreepz Voir le message
    Pourquoi faire deux fetch?

    Un seul ne suffit pas?
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    // On affiche chaque entrée une à une
    while($donnees =$reponse->fetch(PDO::FETCH_BOTH))

    Merci infiniment ! J'étais tellement persuadée que ça venait d'une autre partie de mon code que je n'ai même pas vu une seule seconde cette erreur !
    ça fonctionne parfaitement maintenant. Donc sujet résolu.

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

Discussions similaires

  1. [SQL] Sélectionner la date de dernière mises à jour d'une variable
    Par JeromeMATHIAS dans le forum SAS Base
    Réponses: 2
    Dernier message: 30/07/2011, 18h59
  2. créer une variable pour chaque nom de feuille
    Par José Speret dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 24/09/2010, 22h55
  3. [JDOM] Créer une variable xml directement dans java
    Par Tigrounette dans le forum Format d'échange (XML, JSON...)
    Réponses: 8
    Dernier message: 18/12/2005, 14h21
  4. Réponses: 10
    Dernier message: 02/11/2005, 11h12
  5. [9.2i] Créer une dimension temps pour un DWH
    Par alpachico dans le forum Oracle
    Réponses: 5
    Dernier message: 28/10/2005, 15h00

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