Trier un champs varchar

Avatar du membre
ViPHP
ViPHP | 3008 Messages

31 mars 2005, 11:55

Bonjour !

Je voudrais faire un tri sur un champs varchar de ma base. En fait il s'agit d'une heure donnée, par exemple 8h30.

Quand je tente de faire ORDER BY heure ASC, tout va bien pour 8h30, 9h30...mais dès qu'on arrive à 13h30, hop le "13h30" se retrouve avant le 8h30...

Y a t-il un moyen de contourner ce problème ?

Merci ! :wink:

Eléphanteau du PHP | 15 Messages

31 mars 2005, 12:16

C'est en effet logique vu que le 1 est avant le 8.

Je peux te proposer une solution mais je ne sais pas si c'est la plus simple et rapide.
Il faut donc que tu réorganise ta base et qu'au lieu d'avoir un champ heure de type varchar tu mettes 2 champs en int.
Dans le premier tu mets les heures et dans le second les minutes.
Ensuite tu fais ton tri avec un ORDER BY heure, minute

Voilà pour ma proposition.

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

31 mars 2005, 12:17

redéclarer ce champ sous le type date/heure. VARCHAR n'est pas correcte dans ton cas.
Il n'ya rien à faire de plus. Il faut respecter le principe et non pas contourner la réalité.
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

Eléphanteau du PHP | 15 Messages

31 mars 2005, 12:18

C'est vrai que c'est plus simple.
J'avais oublié le type date/heure.

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

31 mars 2005, 12:26

un tri sur un champs varchar
...
En fait il s'agit d'une heure donnée, par exemple 8h30.
HÉRÉTIQUE !!! :tir2:
Une heure (ou une date) doit être stockée dans un champ de type approprié.

Rappel : Un tri sur un champ de type alphanumérique est toujours plus long qu'un tri sur un champ numérique.

Au bûcher ! Au bûcher ! :lol:

Mammouth du PHP | 19672 Messages

31 mars 2005, 12:34

Encore un peu et albat va nous rédiger quelque chose du genre:
Notre PHP qui êtes au WEB
que votre code soit corrigé
...
:langue:
Ceci dit, il a raison sur un point : il est de très loin préférable d'utiliser des types de champs appropriés dansune base de données et en l'occurence un champ TIME pour enregistrer des heures.

Si tu préfères ne pas toucher à la base de donnée et persister dans l'hérésie, il faut que tu enregistres des valeurs d'heures et de minutes sur deux chiffres et non sur 1 dans le cas où ce serait entre 0 et 9 compris.

Mais si tu en es au début de ton développement, modifie ta base, tu gagneras du temps pour plus tard ;)
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

31 mars 2005, 12:45

Mais si tu en es au début de ton développement, modifie ta base, tu gagneras du temps pour plus tard ;)
Certes, certes... mais cela ne nous interdit pas de le brûler, au moins ? :mrgreen:

Faut m'comprendre, ça fait plus de 48 heures que je me bats sur un même bug, alors forcément, j'm'énerve un peu...

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

31 mars 2005, 12:47

Reculer d'un pas fait avancer... contrairement à ce qu'on croit.
...
S'élever pour voir, mais rester les pieds sur terre... ce n'est pas impossible.
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

Mammouth du PHP | 859 Messages

31 mars 2005, 12:52

Certes, certes... mais cela ne nous interdit pas de le brûler, au moins ? :mrgreen:
han le sadique :lol:

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

31 mars 2005, 13:09

Reculer d'un pas fait avancer... contrairement à ce qu'on croit.
S'élever pour voir, mais rester les pieds sur terre... ce n'est pas impossible.
C'est beau comme du Raffarin ! :lol:

Avatar du membre
ViPHP
ViPHP | 3008 Messages

31 mars 2005, 14:41

Ô pardonner mon ignorance loooool !!!

Voui je suis tout à fait d'accord avec vous....je ne suis pas au début des dev mais pas de soucis je vais revoir tout ça avec un type TIME.

Et pour le bûcher, ça pollue...c'est pas bon pour la santé...on va pi être l'oublier qu'est-ce-que vous en dites ? :-"

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

31 mars 2005, 14:49

Et pour le bûcher, ça pollue...c'est pas bon pour la santé...on va pi être l'oublier qu'est-ce-que vous en dites ? :-"
Allez, c'est bon ! On va oublier pour cette fois.

D'autant que je ne suis pas dans une situation favorable...
:-$