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 :

Problème de dates [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 73
    Par défaut Problème de dates
    Bonsoir,

    Je voudrais savoir comment je peux modifier un script php pour que le résultat affiché n'affiche pas les résultats dont la date est inférieure à la date du jour. Exemple : si un évènement est passé, alors il ne s'affiche pas. Si un évènement va se passer aujourd'hui, il va s'afficher. Si un évènement va se passer dans un mois, il va s'afficher.

    Le format de la date dans ma base de données est comme ceci :
    2013-02-16 20:00:00

    Et mon script php pour extraire les évènements à venir :
    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
    <?
    // Definition des identifiants de connexion
    $DBHOST='xxx'; // Serveur Mysql
    $USEBDD='mabdd'; // Base de donnée utilisée
    $USER='xxx'; // Administrateur de la bdd
    $PASSWORD='xxx'; // Mot de passe d'accès à la bdd
     
    // Connexion à MySQL :
    $link = mysql_connect($DBHOST,$USER,$PASSWORD);
    $db = mysql_select_db($USEBDD,$link);
     
    // Extraction
     
    $requete='SELECT * from soirees_events ORDER BY start_date asc';
    $result=mysql_db_query('mabdd',$requete);
     
    // Affiche resultats
    while($voir=mysql_fetch_array($result))
    {
    echo "
    <a href=\"events/calend.php?mode=view&id=$voir[id]\" target=\"_self\"><img height='100' width='160' src='events/upload/".$voir[picture]."'></a>
    </td></tr>
    <tr><td>
    ";
    }
    ?>

  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
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * from soirees_events WHERE start_date => CURDATE() ORDER BY start_date asc';
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 73
    Par défaut
    J'ai une erreur avec le code que tu m'as donné :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /web/www/monsite/script.php on line 19
    La ligne 19 correspond à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while($voir=mysql_fetch_array($result))

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 73
    Par défaut
    Je pense que c'est à cause du format de la date. Dans ma base, j'ai :

    2013-02-16 20:09:30 (qui correspond à 16 février 2013 à 20h09 et 30 sec)

  5. #5
    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
    Prends le reflexe de debuguer.

    Quand tu as un problème de requête, affiche les erreurs :
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 73
    Par défaut
    J'ai essayé avec ce code-ci mais ça ne marche toujours pas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * from soirees_events WHERE start_date => DATE() ORDER BY start_date asc';
    Pourtant dans cette doc, le format de la date dans ma base de données correspond à DATE ou DATETIME.

  7. #7
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 660
    Par défaut
    Citation Envoyé par spespam Voir le message
    J'ai essayé avec ce code-ci mais ça ne marche toujours pas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * from soirees_events WHERE start_date => DATE() ORDER BY start_date asc';
    Pourtant dans cette doc, le format de la date dans ma base de données correspond à DATE ou DATETIME.
    et la fonction NOW() ne pourrait pas faire l'affaire ?

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 73
    Par défaut
    Non plus

  9. #9
    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
    Si tu ne debug pas comme je t'ai indiqué, tu n'avanceras pas.
    J'espère que tu as enlevé le ' qui traine à la fin de ma ligne.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  10. #10
    Membre Expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Billets dans le blog
    1
    Par défaut
    salut,

    sabotage a fait une petite inversion, c'est >= et pas =>

    pour se rappeler de l'ordre des signe c'est simple suffit de les mettre comme dans l'expression en français "supérieur ou égal" ou "inférieur ou égal"

    et bien utiliser current_date ou curdate() si c'est une colonne de type date ou now() pour datetime...

    évite * dans les requête tu bufferises souvent plein de donnée pour rien, ça alourdit le traitement et niveau maintenance c'est pas top car tu dois avoir la structure sous les yeux et que tu n'organise pas les données comme tu veux...

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * from soirees_events WHERE start_date >= CURDATE() ORDER BY start_date asc

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 73
    Par défaut
    Oui je n'ai pas oublié d'enlever le '.
    J'ai ajouté echo mysql_error();à mon code et voilà l'erreur.

    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '=> CURDATE() ORDER BY start_date asc' at line 1

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 73
    Par défaut
    Mon site tourne sous php 5.2

  13. #13
    Membre Expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Billets dans le blog
    1
    Par défaut
    lis ma réponse précédente et tu auras la solution...

  14. #14
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 73
    Par défaut
    Merci ericd69. Là ça marche.

  15. #15
    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
    sabotage a fait une petite inversion, c'est >= et pas =>
    Je fais trop de tableaux PHP, une soupe et au lit
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

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

Discussions similaires

  1. Problème de date dans requête de màj imbriquée
    Par VirginieGE dans le forum Langage SQL
    Réponses: 11
    Dernier message: 20/07/2004, 15h34
  2. problème de date
    Par baboune dans le forum PostgreSQL
    Réponses: 8
    Dernier message: 10/06/2004, 10h52
  3. Problème de date dans MONTHS_BETWEEN
    Par ghostlord79 dans le forum Oracle
    Réponses: 10
    Dernier message: 07/04/2004, 11h21
  4. Problème conversion date
    Par mat.M dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 30/03/2004, 15h05
  5. Encore un probléme de date avec TADO !
    Par bNoureddine dans le forum Bases de données
    Réponses: 2
    Dernier message: 22/02/2004, 18h22

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