Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Requêtes
Requêtes Forum d'entraide sur les requêtes MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/02/2011, 04h33   #1
Invité de passage
 
Inscription : décembre 2010
Messages : 8
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 8
Points : 3
Points : 3
Par défaut Double tri pour calendrier

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.
Yalta85 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2011, 09h07   #2
ced
Rédacteur/Modérateur

 
Avatar de ced
 
Homme Cédric Duprez
Inscription : avril 2002
Messages : 3 823
Détails du profil
Informations personnelles :
Nom : Homme Cédric Duprez
Âge : 36
Localisation : France, Loiret (Centre)

Informations professionnelles :
Secteur : Agroalimentaire - Agriculture

Informations forums :
Inscription : avril 2002
Messages : 3 823
Points : 6 441
Points : 6 441
Bonjour,

De ce que j'ai compris, il suffirait de trier par stage_id, puis par date :
Code :
1
2
3
SELECT ...
FROM ...
ORDER BY stage_id, date
En tout cas, en regardant l'exemple donné, ce tri fonctionne.

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
ced est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2011, 13h49   #3
Invité de passage
 
Inscription : décembre 2010
Messages : 8
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 8
Points : 3
Points : 3
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.
Yalta85 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h31.


 
 
 
 
Partenaires

Hébergement Web