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

Requêtes MySQL Discussion :

Requete pour regouper mois par mois


Sujet :

Requêtes MySQL

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 8
    Points : 3
    Points
    3
    Par défaut Requete pour regouper mois par mois
    Bonjour à tous.

    J'aurais besoin d'un petit coup de main pour trier et organiser des résultats issus de trois tables :

    mois
    concert
    concert_mois

    la table mois contient uniquement deux champs : id et nom avec donc 12 id et 12 noms correspondants aux mois de l'année.

    La table concert contient un champ id, un champ date un champ nom un champ prix un champ description etc

    La table concert_mois contient deux champs :

    id_concert et id_mois

    Ceci afin de faire la liaison entre les deux tables mois et concert

    Je voudrais pouvoir extraire les résultats et les afficher mois par mois. Par exemple :

    Mai 2008 :
    toutes les dates mai 2008

    Juin 2008 :
    toutes les dates juin 2008 etc.

    Est ce qu'une personne pourrait m'aider à batir la requete nécessaire ?

    Merci infiniment.

    Rasta63

  2. #2
    Membre actif Avatar de Gaara-Manga
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Avril 2007
    Messages : 247
    Points : 239
    Points
    239
    Par défaut
    Pourquoi ne fait tu pas tout simplement un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT *
    FROM concert
    ORDER BY date

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    Merci pour la réponse. Oui effectivement pourquoi pas mais en fait je voudrais regouper par mois. Exemple de sortie HTML souhaitée :

    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
    <div>
    <p>JUIN 2008</p>
    <ul>
    <li>mardi 03 juin : détails du concert</li>
    <li>mercredi 04 juin : détails du concert</li>
    <li>jeudi 05 juin : détails du concert</li>
    </ul>
    </div>
     
    <div>
    <p>JUILLET 2008</p>
    <ul>
    <li>jeudi 03 juillet : détails du concert</li>
    <li>vendredi 04 juillet : détails du concert</li>
    <li>samedi 05 juillet : détails du concert</li>
    </ul>
    </div>
    etc...

    Donc je crois qu'il est nécessaire de lier l'id d'un concert à l'id d'un mois pour arriver à ce type de résultat mais j'avoue que pour le moment je séche un peu sur la requete...

    Merci en tout cas

  4. #4
    Membre actif Avatar de Gaara-Manga
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Avril 2007
    Messages : 247
    Points : 239
    Points
    239
    Par défaut
    En faite le champ date dans concert contient quoi ?



    PS : ptite remarque sur le système, faire une table mois est vraiment inutile une table pour 12 enregistrements sa vaux pas le coup et faire un concert_mois encore moins^^

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    la table concerts contient les champs suivants :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
      `id` int(11) NOT NULL auto_increment,
      `nom` varchar(255) NOT NULL,
      `lieu` varchar(255) NOT NULL,
      `ville` varchar(255) NOT NULL,
      `departement` int(11) NOT NULL,
      `prix` float(13,2) NOT NULL,
      `date` date NOT NULL,
      `description` longtext NOT NULL,
      `url` varchar(255) NOT NULL,
      `style` varchar(90) NOT NULL,
      `heure` time NOT NULL,
      `etat` int(4) NOT NULL,
    Je pensais que creer une table de liaison allait permettre, par la suite, de faciliter les tris, recherches etc dans la base de données.

    EDIT : le champs date contient donc juste la date au format YYYY-MM-DD

    Merci.

  6. #6
    Membre actif Avatar de Gaara-Manga
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Avril 2007
    Messages : 247
    Points : 239
    Points
    239
    Par défaut
    Si il y a la date déjà dans la table Concert alors ya pas besoin d'une table pour sa.
    Le traitement de ta date se fera par programmation pas par SQL

    Sinon pour avoir le résultat :
    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
    <div>
    <p>JUIN 2008</p>
    <ul>
    <li>mardi 03 juin : détails du concert</li>
    <li>mercredi 04 juin : détails du concert</li>
    <li>jeudi 05 juin : détails du concert</li>
    </ul>
    </div>
     
    <div>
    <p>JUILLET 2008</p>
    <ul>
    <li>jeudi 03 juillet : détails du concert</li>
    <li>vendredi 04 juillet : détails du concert</li>
    <li>samedi 05 juillet : détails du concert</li>
    </ul>
    </div>

    Sa sera justement plus dans le traitement à faire issue de la requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT *
    FROM concert
    ORDER BY date
    Que par le SQL lui même. Mais après on sort de cette rubrique par contre et faudra voir dans la partie concernée
    PHP si c'est PHP,etc...

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    Re bonjour
    En fait peut etre me suis je mal exprimé. Je ne suis pas un pro du sql/php meme si je connais les classiques.

    Au dela du traitement en php qu'à la rigueur je suis capable de gerer, je voudrais optimiser ma requete pour que le serveur mysql me renvoie les informations selon le schéma suivant :

    MOIS (ex:juin)
    et direct en dessous toutes les dates pour ce mois de juin

    MOIS (ex:aout)
    et direct en dessous toutes les dates pour ce mois d'aout

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT *
    FROM concert
    ORDER BY date
    Cette requete permet effectivement d'ordonner par date les dates de concerts mais elle ne permet pas de lister mois par mois les dates, il s'agit d'un simple enchainement des dates par ordre ASC ou DESC.

    J'ai tenté quelques requetes mais la boucle WHILE donne une repetition du mois. Par ex pour le mois de juin 2008 et toutes ses dates, ça donne :

    JUIN 2008
    1er résultat
    JUIN 2008
    2nd résultat

    etc...

    C'est pour ça que je pensais qu'en utilisant une table qui contient les mois et les id de ce mois, plus une table mois_concert avec id du mois et id du concert, plus une table concert contenant les infos du concert + un champ id qui est donc commun aux trois tables concert, mois, concerts_mois, il serait possible de lancer une requete qui retournerait le mois puis selon la difficulté de la chose, une autre requete, si ça n'est pas faisable en utilisant des jointures etc, qui aurait pour principe d'aller chercher dans la table concerts les infos de chque concert dont l'id est commun à l'id du mois via la table concerts_mois ou se trouvent stockées deux informations : l'id du mois et l'id du concert.

    Le formulaire de saisie des dates enregistre la date dans un champ DATE qui est "explodée" pour extraire le mois et l'enregistrer en tant qu'id_mois dans la table concerts_mois.

    Merci à ceux qui pourront me donner un bout de soluce, un début de piste pour obtenir ceci.

    Merci.

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    Résolu en une seule requete !

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

Discussions similaires

  1. [VxiR2] Du 12 mois flottant mois par mois?
    Par EmmanuelleC dans le forum Designer
    Réponses: 4
    Dernier message: 13/04/2011, 13h01
  2. Résultat de requete en colonne (mois par mois)
    Par lodan dans le forum Requêtes
    Réponses: 11
    Dernier message: 13/02/2008, 19h53
  3. [MySQL] Requête ordonnant les résultats par mois
    Par DukyGeorge dans le forum Langage SQL
    Réponses: 12
    Dernier message: 15/05/2006, 20h48
  4. [MySQL] requete avec cumul mois par mois
    Par michaelbob dans le forum Langage SQL
    Réponses: 5
    Dernier message: 16/01/2006, 16h32

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