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 :

Affichage des mois [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 95
    Par défaut Affichage des mois
    salut !

    quel serait l'idée pour afficher les mois des données d'une table (chaque donnée comporte un timestamp)

    bien sur, je voudrai afficher qu'une seule fois le mois si celui ci est dans plusieurs données...

    merci ):

  2. #2
    Rédactrice
    Avatar de xave
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mai 2002
    Messages
    871
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2002
    Messages : 871
    Par défaut
    Faire une requête sur la table et afficher le mois en testant pour chaque donnée si c'est le même mois...

    Ca te paraît flou comme explication? Ca l'est autant que ta question...

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 45
    Par défaut
    Si tes dates sont bien au format date tu fait la requête suivante

    "select distinct month(date) from TaTable";

  4. #4
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 95
    Par défaut
    bon, avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $mysql_requete="SELECT SQL_SMALL_RESULT DISTINCT titre FROM matable";
    ca marche bien comme je veux (affiche uniquement les titres differents)

    mais avec mon timestamp qui est au format bigint comment faire pour afficher uniquement des mois differents ??

  5. #5
    Rédactrice
    Avatar de xave
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mai 2002
    Messages
    871
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2002
    Messages : 871
    Par défaut
    Pourquoi tu as mis un timestamp au format bigint?

    Là tu vas pas avoir le chois, déjà utilise un substr() ou un explode() pour récpérer le mois de ton enregistrement et ensuite, tu vas être obligé d'avoir une variable dans laquelle tu conserves le mois précédent et à laquelle tu compares systélatiquement le mois que tu récupères via ta requete.

    Quand le mois change, tu met dans ta variable le dernier mois récupéré.

  6. #6
    Fabouney
    Invité(e)
    Par défaut
    Bonjour,

    la fonction date() en PHP te permet de recupérer ce que tu veux à partir d'un timestamp.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    date("m",timestamp) //récupération du mois à partir d'un timestamp (int)
    le timestamp tu le récupére de ta base bien evidement.

  7. #7
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 95
    Par défaut
    Et si je met mon timestamp au format date (bon, ok, c'est plus un timestamp mais bon) ?

  8. #8
    Fabouney
    Invité(e)
    Par défaut
    bah ton traitement t'es pas obliger de le faire dans ta requete pk veut tu absolument procéder ainsi.
    ton champ timestamp est de type bigint comme tu as dit, au moment de l'insertion d'une donnée ds ta base tu insere le timestamp (time()) ?
    si oui, alors tu selection ton champ timestamp et comme je t'es dit, tu récupérere que le mois grace a la fonction date() !

  9. #9
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 95
    Par défaut
    Citation Envoyé par Fabouney
    bah ton traitement t'es pas obliger de le faire dans ta requete pk veut tu absolument procéder ainsi.
    ton champ timestamp est de type bigint comme tu as dit, au moment de l'insertion d'une donnée ds ta base tu insere le timestamp (time()) ?
    si oui, alors tu selection ton champ timestamp et comme je t'es dit, tu récupérere que le mois grace a la fonction date() !
    yep mais avec ca j'aurais tous les mois, y compris ceux qui apparaissent plusieurs fois. A moins que je fasse un tableau qui se souviennent des mois deja passées et que je revienne tester dedans.. Mais ca semble lourd alors que ca peut etre possible avec la requete, non ?

  10. #10
    Fabouney
    Invité(e)
    Par défaut
    comment ca tu auras tout les mois, tu aura seulement les mois pour chaque enregistrement de la table que tu souhaite.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select timestamp from ta_table
    pour chaque enregistrement tu fait un date("m", timestamp) de ton champ ...
    donc je vois pas trop ce que tu veux dire là lol désolé .

  11. #11
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 95
    Par défaut
    ben imaginons que dans la table il y est

    janvier
    mars
    aout
    mars
    mars
    janvier



    moi je veux juste janvier mars aout

    alors qu'avec ta méthode il affiche tout non ?

  12. #12
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 45
    Par défaut
    Dans ce cas tu as juste à faire un distinct

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select distinct date("m",timestamp) from Tatable

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

Discussions similaires

  1. [Requête][2007]Affichage des données 1 mois avant échéance
    Par Tourlou57 dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 17/04/2007, 10h07
  2. Réponses: 12
    Dernier message: 31/03/2007, 08h38
  3. Affichage des mois en français
    Par Sofute dans le forum Requêtes
    Réponses: 2
    Dernier message: 18/01/2007, 22h45
  4. Affichage des informations un mois avant
    Par erikac dans le forum Access
    Réponses: 1
    Dernier message: 08/06/2006, 15h03
  5. Affichage des mois dans une liste déroulante
    Par Le Rebel dans le forum Langage
    Réponses: 15
    Dernier message: 20/02/2006, 13h37

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