|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : décembre 2010 Messages : 8 ![]() |
Bonjour,
Je dois générer un calendrier de stages qui peuvent être sur plusieurs jours d'affilé et que je voudrais mettre du type : du 02 au 04 -> stage id20, mais pour un jour donné il peut y avoir un autre stage, par exemple le 02 -> stage id23. Comment faire donc pour trier la table pour les dates et en même temps pour les stages ? en clair au lieu de ça après le tri de ma table date : id date stage_id 01 02/03 20 02 02/03 23 03 03/03 20 05 04/03 20 08 07/03 43 ... je souhaiterai ça : id date stage_id 01 02/03 20 02 03/03 20 03 04/03 20 05 02/03 23 08 07/03 43 ... Si je trie par date ça va pas et si je trie par stage_id du coup les jours ne sont plus dans l'ordre et ça va pas non plus ! Je sais pas si c'est faisable avec des requêtes, mais si je dois faire une fonction de tri en php ça m'a pas l'air très simple non plus. Merci beaucoup pour votre aide. |
|
|
00
|
|
|
#2 | ||
![]() ![]() ![]() Cédric DuprezInscription : avril 2002 Messages : 3 823 ![]() |
Bonjour,
De ce que j'ai compris, il suffirait de trier par stage_id, puis par date : Code :
ced
__________________
Rédacteur / Modérateur SGBD Mes tutoriels et la FAQ MySQL ---------------------------------------------------- Pensez aux balises code et au tag Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça
|
||
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : décembre 2010 Messages : 8 ![]() |
Merci Ced pour ta réponse, j'avais déjà essayé comme tu l'indiques ( j'aurais dû le mettre dans le post ), mais le problème c'est que les dates ne sont plus dans l'ordre, aussi j'ai trouvé une solution système d un peu lourde mais qui fonctionne : lors de l'insertion des dates dans l'espace admin du site ( cevak.fr ), j'entre dans la table des dates un indice qui représente le nombre de jours de suite pour le premier jour, et 0 pour les suivants, ainsi pour un stage qui va du 04 au 08 par exemple, je mets indice 5 pour le 04 et 0 pour le reste, puis quand je rencontre pour l'affichage l'indice 5 je calcule 04 + ( 5 - 1 ) = 08 et indique donc 04 -> 08. Comme je rencontre l'indice 0 pour les jours suivants ils ne s'affichent pas. Un stage qui est sur un seul jour a pour indice 1, donc il s'affiche. Il reste un problème pour les changements de mois ( exemple un stage qui va du 29/02 au 02/03 car il faut qu'il s'affiche sur le deuxième mois ) , mais je verrais ça plus tard en regardant si un stage comprend comme date le 01 ...
PS : Peut-être y avait-il une autre solution en faisant une table temporaire triée par stage, puis une requête sur cette table triée par date, mais je trouve pas ça très pratique et comme toutes les données de la base sont récupérées dès son ouverture ( pour faire un site sans rechargement de page via javascript ), j'ai peur que ça le ralentisse. Je poste 'résolu' si je trouve ou c'est ... a plus. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com