Faire un tri successif en PHP
                    
        
     
             
                    nanor21
    
        
    
                    Messages postés
            
                
     
             
            16
        
            
                                    Statut
            Membre
                    
                -
                                     
Nanor 21 -
        Nanor 21 -
        Bonjour a tous,
Je souhaite faire apparaitre des creneaux horaires dans un menu deroulant.
Ces creneaux horaires sont pris dans une base de donnees.
L'ennui c'est que ces heures sont notees en systeme americain:
ce qui fait que lorsque je demande un tri alphabetique:
je me retrouve avec : 02:00 P.M avant 11:00 A.M.
J'aimerais qu'il me fasse un premier tri en fonction de A.M puis un deuxieme en fonction P.M,
Voici mon code pour le moment,
"SELECT * FROM Matable WHERE Hour ORDER BY Hour ";
Pouvez vous m'aidez a resoudre ce probleme s'il vous plait.
                
            
                
    
    
    
        Je souhaite faire apparaitre des creneaux horaires dans un menu deroulant.
Ces creneaux horaires sont pris dans une base de donnees.
L'ennui c'est que ces heures sont notees en systeme americain:
ce qui fait que lorsque je demande un tri alphabetique:
je me retrouve avec : 02:00 P.M avant 11:00 A.M.
J'aimerais qu'il me fasse un premier tri en fonction de A.M puis un deuxieme en fonction P.M,
Voici mon code pour le moment,
"SELECT * FROM Matable WHERE Hour ORDER BY Hour ";
Pouvez vous m'aidez a resoudre ce probleme s'il vous plait.
        A voir également:         
- Faire un tri successif en PHP
- Comment faire un tri personnalisé sur excel - Guide
- Logiciel tri photo - Guide
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Votre colis est retenu au centre de tri - Accueil - Arnaque
3 réponses
                        
                    Salut,
ton tri n'est pas alphabetique mais plutôt asciibetique.
c'est normal d'avoir 02:00 P.M avant 11:00 A.M
puisuqe 0 est avant 1 dans l'ordre asciibetique
Donc tu peux faire 2 requêtes
une pour AM
    
                ton tri n'est pas alphabetique mais plutôt asciibetique.
c'est normal d'avoir 02:00 P.M avant 11:00 A.M
puisuqe 0 est avant 1 dans l'ordre asciibetique
Donc tu peux faire 2 requêtes
une pour AM
SELECT * FROM Matable WHERE Hour LIKE '%AM' ORDER BY Houret une pour PM
SELECT * FROM Matable WHERE Hour LIKE '%PM' ORDER BY Hourlami20j
                        
                    Même si ce message est vieux, j'y répond ça pourrait aider des personnes.
Il suffit de faire ceci :
SELECT * FROM matable ORDER BY Hour GROUP BY RIGHT(Hour, 3)
La fonction RIGHT(chaine, x) sélectionne les "x" caractères en partant de la droite de la chaine "chaine"
De même pour la LEFT() mais en partant de la gauche
    
                Il suffit de faire ceci :
SELECT * FROM matable ORDER BY Hour GROUP BY RIGHT(Hour, 3)
La fonction RIGHT(chaine, x) sélectionne les "x" caractères en partant de la droite de la chaine "chaine"
De même pour la LEFT() mais en partant de la gauche
 
    
    
    
    
Je comprends bien ta methode mais l'ennui c'est que je voudrais reunir ces deux requetes dans une seule afin que ces deux requetes puissent aller dans le meme menu deroulant.
existe t il un mot de liaison en php du genre THEN (et puis) pour permettre quelque chose du genre afin que php reconnaisse l'odrdre de tri:
SELECT FROM matable WHERE Hour LIKE '%AM' ORDER BY Hour THEN SELECT FROM matable WHERE Hour LIKE '%PM' ORDER BY Hour
Mais d'un autre cote je n'ai pas pu encore esseyer ta solution du fait que je n'ai plus mon pc ce week end mais un mac(qui n'a pas les bons logiciels),donc peut etre que ta solution repond deja a ma question.
Merci pour ta reponse