Ordonner les résultats d'une requete
Résolu
Fetide68
Messages postés
745
Date d'inscription
Statut
Membre
Dernière intervention
-
Fetide68 Messages postés 745 Date d'inscription Statut Membre Dernière intervention -
Fetide68 Messages postés 745 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai une table agenda (id, evenement, date (en timestamp))
Je souhaiterais afficher le résultat comme ceci :
Janvier 2010:
- le 8: Fete de la carotte
- le 15: Fete de la biere
Fevrier 2010:
- le 1: Fete du Champomie (pas e pub lol)
Is it possible s'il vous please ?
J'ai une table agenda (id, evenement, date (en timestamp))
Je souhaiterais afficher le résultat comme ceci :
Janvier 2010:
- le 8: Fete de la carotte
- le 15: Fete de la biere
Fevrier 2010:
- le 1: Fete du Champomie (pas e pub lol)
Is it possible s'il vous please ?
A voir également:
- Ordonner les résultats d'une requete
- Resultats foot - Télécharger - Vie quotidienne
- Lexer resultats - Télécharger - Sport
- Comment ordonner une liste sur excel - Guide
- Les résultats concernant les personnes sont limités - Accueil - Confidentialité
- Samia, kevin et jason ont gardé la trace de leurs ventes quotidiennes du mois de juillet 2016. dans la feuille bilan, il manque les résultats de jason. insérez une colonne entre samia et kevin et reportez-y les résultats de jason. quel mot secret apparait en f2 ? ✓ - Forum Excel
17 réponses
Oui php ! Je ne sais ps trop par ou commencer, avec un format timestamp je peux difficilement faire un group by ou order by... ?
sa se fais à parti de la ou tu va afficher les résultat de ta requête, déjà commence par construire ta requête et ensuite tout dépend du langage que tu veut utilisé par la suite,
je suppose php?
je suppose php?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question$sql="SELECT evenement, date FROM agenda WHERE date=ton_mois";
et dans php tu récupére ta données
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); while ($mois = mysql_fetch_array($req)) { echo" le ".$mois['nom_de_mois']." fete du ".$mois['evenement']." }
voilà de tête de ce que je me rappel creuse dans ce sens
Sauf si ça n'est pas vraiment le cas... Ta proposition ne me permet pas vraiment d'organiser mes résultats... Comment je peux faire dat-e = ton mois avec une date en timestamp ? Avec un between ?
Et je peux pas faire ça :
echo 'le mois + l'année';
echo '<hr>';
echo 'la liste des fêtes du mois de cette forme: le jour : la fete';
Comme ceci :
Février 2010:
-------------------------- (hr)
le 6 : fete de la pluie
le 12 : fete de la neige...
Et je peux pas faire ça :
echo 'le mois + l'année';
echo '<hr>';
echo 'la liste des fêtes du mois de cette forme: le jour : la fete';
Comme ceci :
Février 2010:
-------------------------- (hr)
le 6 : fete de la pluie
le 12 : fete de la neige...
Bonjour
La fonction getdate
https://www.php.net/manual/fr/function.getdate.php
te permet de décomposer ton timestamp en jour, mois et année.
Si tu as fait ton SELECT avec un ORDER BY sur le timestamp, c'est déjà trié, tu n'as plus qu'une simple boucle à faire avec comme seule subtilité la détection de changement de mois pour générer l'en-tête de chaque mois
La fonction getdate
https://www.php.net/manual/fr/function.getdate.php
te permet de décomposer ton timestamp en jour, mois et année.
Si tu as fait ton SELECT avec un ORDER BY sur le timestamp, c'est déjà trié, tu n'as plus qu'une simple boucle à faire avec comme seule subtilité la détection de changement de mois pour générer l'en-tête de chaque mois
Je vois à peux prêt ce que tu veux dire, mais je n'ai pas trop d'idée concernant cette subtilité... Pourrais-tu développer rapidement cette idée. Pas besoin de te casser trop la tête, mais juste le principe au moins... Je mettrai le résultat quand je l'aurai trouvé pour ceux qui suivront... Merci le père.
Avant ton while, tu initialises deux variables $mois_courant=''; et $annee_courante='';
Pour chaque timestamp rendu par ta requête
tu le décomposes en jour, mois, année avec getdate
Tu compares le mois et l'année avec ceux mémorisés dans $mois_courant et $annee_courante
Si il y a une différence (ce qui sera vrai au 1er passage) :
tu affiche l'en-tête du mois ( le mois et ton <hr /> )
tu mémorises les nouveaux mois et année dans $mois_courant et $annee_courante
finsi
tu affiches le jour et la manifestation
finpour
Pour chaque timestamp rendu par ta requête
tu le décomposes en jour, mois, année avec getdate
Tu compares le mois et l'année avec ceux mémorisés dans $mois_courant et $annee_courante
Si il y a une différence (ce qui sera vrai au 1er passage) :
tu affiche l'en-tête du mois ( le mois et ton <hr /> )
tu mémorises les nouveaux mois et année dans $mois_courant et $annee_courante
finsi
tu affiches le jour et la manifestation
finpour
Je vois pas bien comment je peux regrouper les résultats maintenant ?
Je dois faire plusieurs requetes ?
Comment se présenterait le while ?
Je dois faire plusieurs requetes ?
Comment se présenterait le while ?
Je vois pas bien comment je peux regrouper les résultats maintenant ?
Quels résultats veux-tu regrouper ? Si tu parles de les regrouper par mois, c'est justement à ça que répond l'algorithme du message 10
Comment se présenterait le while ?
C'est le "pour .. finpour" du message 10, en paratique en php il ressemblera à ça :
$resultat = mysql_query ("SELECT * from matable ORDER BY champtimestamp") or die (mysql_error());
while ($donnes=mysql_fetch_array($resultat)) {
...
}
Quels résultats veux-tu regrouper ? Si tu parles de les regrouper par mois, c'est justement à ça que répond l'algorithme du message 10
Comment se présenterait le while ?
C'est le "pour .. finpour" du message 10, en paratique en php il ressemblera à ça :
$resultat = mysql_query ("SELECT * from matable ORDER BY champtimestamp") or die (mysql_error());
while ($donnes=mysql_fetch_array($resultat)) {
...
}
Oui mais dans ce cas, je ne pourrais pas faire autrement que d'afficher :
Janvier 2010:
le 6 : Epiphanie
Janvier 2010:
le7 : fête du moment ou les rois mages ses sont cassés de l'étable...
Je ne pourrais pas les regrouper comme suit :
Janvier 2010:
le 6 : ...
le 7 : ...
Janvier 2010:
le 6 : Epiphanie
Janvier 2010:
le7 : fête du moment ou les rois mages ses sont cassés de l'étable...
Je ne pourrais pas les regrouper comme suit :
Janvier 2010:
le 6 : ...
le 7 : ...
Justement si
C'est ça le rôle de l'algorithme que je t'ai donné message 10. Il est pourtant simple à comprendre ! Tu n'affiches le mois que si tu changes de mois, c'est tout.
C'est ça le rôle de l'algorithme que je t'ai donné message 10. Il est pourtant simple à comprendre ! Tu n'affiches le mois que si tu changes de mois, c'est tout.
Désolé d'avoir paru lourd mais ce n'est pas si évident... J'ai quand même bien réfléchis (chose qui là, m'a semblée dure lol)...
Alors voici ma proposition pour les suivants. Le code peut sembler long et beaucoup vont le critiquer parce qu'il y a plus symple sans doute, mais tant pis, il n'est jamais trop tard pour proposer une amélioration.
Merci le père...
Code :
Et ca marche, c'est l'essentiel !
Alors voici ma proposition pour les suivants. Le code peut sembler long et beaucoup vont le critiquer parce qu'il y a plus symple sans doute, mais tant pis, il n'est jamais trop tard pour proposer une amélioration.
Merci le père...
Code :
$manifestations = mysql_query ("SELECT * FROM manifestations ORDER BY date") or die (mysql_error()); $mois_courant = ''; $annee_courante = ''; while ($manifestation = mysql_fetch_array ($manifestations)) { if ($annee_courante != date('Y',$manifestation['manifestation_date'])) { $annee_courante = date('Y',$manifestation['manifestation_date']); echo '<p class="annee">'.$annee_courante.' :</span>'; } if ($mois_courant != date('m',$manifestation['manifestation_date'])) { require('mois.php'); // Un switch sur le resultat date('m',resultat de la requete en timestpamp) qui permet de donner le nom des mois : case '01': $mois = janvier; break; case '02': ... $mois_courant = date('m',$manifestation['manifestation_date']); echo '<p class="mois">'.$mois.' ('.date('m',$manifestation['manifestation_date']).') :</span>'; } echo '<p class="evenement"> <span class="jour">Le '.date('d',$manifestation['manifestation_date']).' : </span> <span class="evenement">'.$manifestation['manifestation_manifestation'].' </span> </p>'; }
Et ca marche, c'est l'essentiel !
il y a plus symple sans doute
Oui, écrire "simple" avec un i au lieu d'un y par exemple ^^
Autre petit détail : quand tu changes d'année, efface le mois courant. Sinon, si tu as une manifestation en janvier 2009 et la suivante en janvier 2010 (j'espère que tu en as plus que ça) après avoir affiché 2010 tu ne ré-afficherais pas janvier parce que ce serait déjà le mois courant.
Oui, écrire "simple" avec un i au lieu d'un y par exemple ^^
Autre petit détail : quand tu changes d'année, efface le mois courant. Sinon, si tu as une manifestation en janvier 2009 et la suivante en janvier 2010 (j'espère que tu en as plus que ça) après avoir affiché 2010 tu ne ré-afficherais pas janvier parce que ce serait déjà le mois courant.