PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 30-08-2009 10:44:41

rickways
Membre
Inscription : 30-08-2009
Messages : 38

Classer selon plusieurs champs (mysql)

Bonjour à tous,

je vous expose un souci pour lequel je n'ai pas trouver la moindre solution.
Vous réagirez surement en premier point en me disant que ma base de données est construite n'importe comment, et j'approuverais, malheureusement cela ne fera pas avancer l'affaire, car il faut trouver une solution à cette situation.

J'ai une table poesie dans laquelle il y a 3 champs date
tablepoesie.jpg

Jusqu'à présent j'ai classé tous les poèmes par date en fonction de la date de dépose du poème (Champs datepoeme)

Le problème c'est que lorsque quelqu'un envoie une illustration ou un mp3 pour un poème celui reste toujours classer au jour où le poème a été déposé.

Je voudrais donc que l'affichage de mes poèmes se fasse en fonction des 3 champs date en prenant la date la plus récente.....

Je ne vois pas trop comment faire order by  avec une comparaison de date et une sélection de la plus récente...

Que me proposeriez vous ?

Hors ligne

#2 30-08-2009 11:27:28

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : Classer selon plusieurs champs (mysql)

Saluton,
Effectivement il y aurait beaucoup à dire sur la conformité de cette table aux formes normales.
Pour ce qui concerne ton problème, tu peux essayer

ORDER BY LEAST(datepoeme,dateillustration,datemp3) DESC

mais c'est sans garantie, et surtout, j'espère qu'il existe un index sur chacune des ces trois colonnes, car, sinon, tu risques de faire exploser le serveur.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#3 30-08-2009 18:48:06

rickways
Membre
Inscription : 30-08-2009
Messages : 38

Re : Classer selon plusieurs champs (mysql)

Bonjour Kris,

Merci pour l'info, par contre j'ai utilisé greatest à la place (je ne connaissais pas cette fonction)
cela a l'air de marcher.

Maintenant que le problème semble résolu, je veux bien quelques conseils sur ma base de données, car j'ai tout inventé tout seul et je n'y connais rien de rien

Qu'appelles tu un index pour chacune de mes trois colonnes ???

Merci d'avance pour ton complément d'info (tu m'as intrigué du coup, lol)

Eric

Hors ligne

#4 30-08-2009 21:42:51

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : Classer selon plusieurs champs (mysql)

Pour ce qui est de la modélisation du domaine et le schéma relationnel à recommander, je ne peux pas me prononcer en ayant vu qu'une seule table de la base de données.
Pour l'utilité des index, lire, par exemple, ceci


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#5 31-08-2009 09:22:46

rickways
Membre
Inscription : 30-08-2009
Messages : 38

Re : Classer selon plusieurs champs (mysql)

Merci pour le lien.
Je viens d'y jeter un coup d'oeil.
Un peu compliquer pour moi à comprendre, mais je pense avoir saisi le principal (simplifier la lecture de la table lors des requetes)
Pour ce qui est de "l'indexage" j'ai été sur phpmyadmin, et j'ai cliqué sur à partir de la structure sur index pour le champs valid, je pensais que ça n'avait pas marcher, alors j'ai encore cliqué deux fois et apparement j'ai trois index pour ce champs maintenant, comment fait on pour retirer les index ????

Je suis désolé, si cela t'ennuie dis le moi je ne me vexerais pas, mais si tu es prêt à continuer à me donner des infos je suis preneur (tranquillement)

Merci d'avance

ERIC

PS: si tu veux voir le reste de ma table (enfin si tu veux pleurer) n'hésite pas à me demander ! par contre je ne vais peut être pas tout mettre sur le forum en image!

Hors ligne

#6 31-08-2009 09:33:23

rickways
Membre
Inscription : 30-08-2009
Messages : 38

Re : Classer selon plusieurs champs (mysql)

Bon désolé j'ai trouvé, j'ai été un peu fénéant au moment du message

donc pour info
DROP INDEX nom de l'index ON nom de la table

Hors ligne

#7 31-08-2009 12:24:54

rickways
Membre
Inscription : 30-08-2009
Messages : 38

Re : Classer selon plusieurs champs (mysql)

Par exemple pour cette table, j'ai donc cliquer sur index pour les champs
valid, et les trois champs date, est-ce judicieux ?

Hors ligne

Pied de page des forums