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 :

Groupement d'une requête par date


Sujet :

Requêtes MySQL

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2006
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Ardennes (Champagne Ardenne)

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 88
    Points : 74
    Points
    74
    Par défaut Groupement d'une requête par date
    Bonjour,

    J'ai une table constitué comme ci :
    id | titre [ texte | date

    le champ date est au format suivant YYYY-MM-JJ

    J'aimerais sur une page en php, afficher les année qui existe dans la table pour regrouper ensuite par mois qui existe dans la table
    Ensuite au clci sur le mois de l'année, je dois afficher tout les id correspondant au mois/date

    Ex :
    2010
    12 (clic : affichage des elements au (n/MM/AAAA)
    10
    2009
    12
    11
    10

    Une idée des requetes mysql à faire pour les 3 evenements svp ?

  2. #2
    Membre éprouvé Avatar de Oishiiii
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2009
    Messages
    508
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Août 2009
    Messages : 508
    Points : 1 107
    Points
    1 107
    Par défaut
    Bonsoir,

    Pour ce qui est de l'affichage avec décomposition par année et par mois ça se joue au niveau de l'application à partir d'une simple requête avec trie sur la date.

    Ensuite vous pouvez utiliser les fonctions de manipulation de date:
    http://dev.mysql.com/doc/refman/5.1/...functions.html

    Par exemple, trouver toutes les lignes pour lesquelles colDate est en avril 2012:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT *
    FROM laTable
    WHERE YEAR(colDate) = 2012
      AND MONTH(colDate) = 4

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2006
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Ardennes (Champagne Ardenne)

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 88
    Points : 74
    Points
    74
    Par défaut
    Merci pour ton aide mais j'ai encore un soucis
    Je récupère seulement les mois d'une seule année, le problème doit être tout bête

    Voici mon code
    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
     
    	/* ==> Recherche et trie par année dans la database */
    	$annee = mysql_query('SELECT * FROM `blog` GROUP BY year(`date_ev`) DESC');
    	$print_annee = '';
    	while ($data_annee = mysql_fetch_array($annee))
    		{
    		$result_annee = $data_annee['date_ev'];
    		$format_annee = $result_annee{0}.$result_annee{1}.$result_annee{2}.$result_annee{3};
    		$print_annee .= '<h1>' . $format_annee. '</h1><br />';
    		/* ==> Recherche et trie par mois/année dans la database */
    		$mois = mysql_query('SELECT * FROM `blog` WHERE YEAR(`date_ev`) = ' . $format_annee . ' GROUP BY month(`date_ev`) DESC');
    		$print_mois = '';
    		while ($data_mois = mysql_fetch_array($mois))
    			{
    			$result_mois = $data_mois['date_ev'];
    			$format_mois = $result_mois{5}.$result_mois{6};
    			$print_mois .= '<h3>' . $format_mois. ' - ' . $format_annee . '</h3><br />';
    			}
     
    		}
     
    		print($print_annee);
    		print($print_mois);
    La j'ai :
    2010
    2009
    04
    03

    Au lieu de
    2010
    04
    02
    2009
    04
    03

    Merci pour votre aide

  4. #4
    Membre éprouvé Avatar de Oishiiii
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2009
    Messages
    508
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Août 2009
    Messages : 508
    Points : 1 107
    Points
    1 107
    Par défaut
    Il ne faut pas utiliser GROUP BY, mais ORDER BY.

  5. #5
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2006
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Ardennes (Champagne Ardenne)

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 88
    Points : 74
    Points
    74
    Par défaut
    Ça me sort que les 2009 également.

  6. #6
    Membre éprouvé Avatar de Oishiiii
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2009
    Messages
    508
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Août 2009
    Messages : 508
    Points : 1 107
    Points
    1 107
    Par défaut
    Quel est le problème exactement ?
    Vous avez un problème en SQL ou en PHP ?

  7. #7
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2006
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Ardennes (Champagne Ardenne)

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 88
    Points : 74
    Points
    74
    Par défaut
    En résultat, je n'ai que les mois de l'année 2009 et non pas ceux de l'année 2009. Pourtant j'ai mis ORDER à la place de GROUP dans la recherche des mois

  8. #8
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2006
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Ardennes (Champagne Ardenne)

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 88
    Points : 74
    Points
    74
    Par défaut
    Ca fonctionne Oishiiii avec order en fait. Peti coup de fatigue hieer
    Merci pour votre aide.

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

Discussions similaires

  1. Filtrer les résultats d'une requête par date courte
    Par Herwin78800 dans le forum Linq
    Réponses: 8
    Dernier message: 11/08/2011, 15h16
  2. Sélectionner les résultats d'une requête par date
    Par 0sef40 dans le forum Langage SQL
    Réponses: 16
    Dernier message: 19/05/2011, 08h38
  3. executer une requête par liste déroulante
    Par lolo_bob2 dans le forum Access
    Réponses: 2
    Dernier message: 15/05/2006, 11h35
  4. Modifier une requête par des données différente
    Par leloup84 dans le forum Requêtes
    Réponses: 9
    Dernier message: 06/03/2006, 14h23
  5. Comment grouper une requête par mois ?
    Par Le Pharaon dans le forum Langage SQL
    Réponses: 6
    Dernier message: 29/06/2005, 12h01

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