[MySQL] Requète aléatoire en fonction du jour

Requète aléatoire en fonction du jour [MySQL] - SQL/NoSQL - Programmation

Marsh Posté le 24-02-2008 à 23:48:19    

Bonjour,
 
je voudrais faire une requète aléatoire du genre ORDER BY RAND()
Mais un peu plus compliqué. J'aimerais que chaque jour il me tire une séquence aléatoire différente.
 
Pour etre clair sur mon site je propose des logiciels à télécharger, chaque logiciel correspond une entrée MySQL.
Je voudrais sur la page d'accueil une section "logiciel du jour", le choix étant aléatoire.
Il faut donc tirée une séquence différente chaque jour, et que ce soit la meme toute la journée.
Evidemment si je fais une requète avec ORDER BY RAND() ca change à chaque fois...
 
Si vous avez une idée, merci d'avance.


Message édité par fffff2mpl4 le 24-02-2008 à 23:48:42
Reply

Marsh Posté le 24-02-2008 à 23:48:19   

Reply

Marsh Posté le 25-02-2008 à 09:21:16    

a priori plusieurs solutions, pourries et moins pourries, a toi de faire le tri:  

  • en programmation tu calcules celui de ta journée et l'inseres dans une table dont tu te serviras au moment de ta requete.
  • via un trigger tu mets a jour une table et dans ce trigger tu ne le calcules que si tu ne l'a pas déja calculé pour la date du jour.
  • tu bases ton tri sur un calcul sur la date.

Reply

Marsh Posté le 26-02-2008 à 15:30:46    

Je verrais un truc basique du genre :
 
- Une table avec la structure suivante :
date, log1, log2, log3, log4, etc. (autant de "log" que ta sélection du jour contient de logiciels)
- Lorsque tu affiches la liste du jour : select dans cette table en recherchant la date du jour. Si pas de ligne, création de la ligne avec une sélection "order by rand()". Puis re-sélection dans la table
 
=> Ainsi, tu fais le tirage une seule fois par jour, et tu gardes l'historique

Reply

Marsh Posté le 26-02-2008 à 15:40:12    

Ah oui pas bète !
Je vais essayer de faire comme ca.
merci

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed