Ordonner les résultats d'une requete
Résolu/Fermé
Fetide68
Messages postés
746
Date d'inscription
dimanche 4 janvier 2009
Statut
Membre
Dernière intervention
16 septembre 2024
-
13 janv. 2010 à 16:18
Fetide68 Messages postés 746 Date d'inscription dimanche 4 janvier 2009 Statut Membre Dernière intervention 16 septembre 2024 - 15 janv. 2010 à 09:05
Fetide68 Messages postés 746 Date d'inscription dimanche 4 janvier 2009 Statut Membre Dernière intervention 16 septembre 2024 - 15 janv. 2010 à 09:05
A voir également:
- Ordonner les résultats d'une requete
- Lexer resultats - Télécharger - Sport
- Resultats foot - Télécharger - Vie quotidienne
- Résultats loto 5/90 d'aujourd'hui - Forum Linux / Unix
- Résultats 5/90 - Forum Excel
- Archives résultats bac 1998 ✓ - Forum Réseaux sociaux
17 réponses
Fetide68
Messages postés
746
Date d'inscription
dimanche 4 janvier 2009
Statut
Membre
Dernière intervention
16 septembre 2024
32
13 janv. 2010 à 17:10
13 janv. 2010 à 17:10
Oui php ! Je ne sais ps trop par ou commencer, avec un format timestamp je peux difficilement faire un group by ou order by... ?
yacleouf
Messages postés
438
Date d'inscription
mercredi 11 mars 2009
Statut
Membre
Dernière intervention
8 juin 2015
39
13 janv. 2010 à 16:56
13 janv. 2010 à 16:56
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?
yacleouf
Messages postés
438
Date d'inscription
mercredi 11 mars 2009
Statut
Membre
Dernière intervention
8 juin 2015
39
13 janv. 2010 à 17:13
13 janv. 2010 à 17:13
non pas besoin mais tu sera obligé de retraité les données une par une dans ton code php
Fetide68
Messages postés
746
Date d'inscription
dimanche 4 janvier 2009
Statut
Membre
Dernière intervention
16 septembre 2024
32
13 janv. 2010 à 17:19
13 janv. 2010 à 17:19
Tu peux me donner un exemple rapidement, je ne vois pas ce que tu veux dire...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
yacleouf
Messages postés
438
Date d'inscription
mercredi 11 mars 2009
Statut
Membre
Dernière intervention
8 juin 2015
39
13 janv. 2010 à 17:30
13 janv. 2010 à 17:30
$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
yacleouf
Messages postés
438
Date d'inscription
mercredi 11 mars 2009
Statut
Membre
Dernière intervention
8 juin 2015
39
14 janv. 2010 à 08:39
14 janv. 2010 à 08:39
n'oublie pas de passé ton sujet en résolu...
Fetide68
Messages postés
746
Date d'inscription
dimanche 4 janvier 2009
Statut
Membre
Dernière intervention
16 septembre 2024
32
14 janv. 2010 à 09:18
14 janv. 2010 à 09:18
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
Fetide68
Messages postés
746
Date d'inscription
dimanche 4 janvier 2009
Statut
Membre
Dernière intervention
16 septembre 2024
32
14 janv. 2010 à 09:52
14 janv. 2010 à 09:52
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
Fetide68
Messages postés
746
Date d'inscription
dimanche 4 janvier 2009
Statut
Membre
Dernière intervention
16 septembre 2024
32
14 janv. 2010 à 14:44
14 janv. 2010 à 14:44
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)) {
...
}
Fetide68
Messages postés
746
Date d'inscription
dimanche 4 janvier 2009
Statut
Membre
Dernière intervention
16 septembre 2024
32
14 janv. 2010 à 16:47
14 janv. 2010 à 16:47
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.
Fetide68
Messages postés
746
Date d'inscription
dimanche 4 janvier 2009
Statut
Membre
Dernière intervention
16 septembre 2024
32
14 janv. 2010 à 17:32
14 janv. 2010 à 17:32
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.
Fetide68
Messages postés
746
Date d'inscription
dimanche 4 janvier 2009
Statut
Membre
Dernière intervention
16 septembre 2024
32
15 janv. 2010 à 09:05
15 janv. 2010 à 09:05
Symple c'est un mélange entre simple et sympa... Non je plaisante, merci de me le faire remarqué... et merci encore pour toute ton aide... Je deviendrai bientôt un presque pro du PHP...
Bonne année !
Bonne année !