IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Question : requete avec tri aléatoire avec mémoire


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 11
    Par défaut Question : requete avec tri aléatoire avec mémoire
    Bonjour à tous,
    j'ai une requête standard avec des noms et des informations dans plusieurs champs qui suivent.
    Dans la généralité je fais une requête avec un tri alphabétique sur le champ "name".
    Mais dans certains cas, je voudrais que le tri soit aléatoire.
    Ok, facile : de "order by name" je suis passé à "order by rand()"
    mais là, j'aimerai que ce tri aléatoire soit mémorisé pour une durée d'une heure par exemple car actuellement, à chaque fois que je raffraichis ma page d'affichage, j'ai un nouveau rand() (et c'est normal!) donc ma liste est mélangée.

    Avez-vous une idée d'un comment faire pour conserver ce tri aléatoire au moins quelques minutes de manière à ce que l'affichage de cette même liste (qui relance une requête) soit dans le même ordre ?

    peut-on entrer une valeur externe à la place de rand() dans le "order by" par exemple ?
    (faire un randomize d'une valeur qui sera conservée quelques temps en php, ça je peux faire)

    Merci de vos lumières

  2. #2
    Membre émérite Avatar de obito
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 773
    Par défaut
    Salut, je suis pas expert en la matière mais peut être en créant un cookie, tu le stock sur ton pc, avec l'heure du premier rand() et tu teste, si ça fait plus d'une heure ou pas, si c'est moins pas de nouveau rand(), si c'est plus ,alors tu feras un nouveau rand().

    Enfin la je dis ça mais y a peut être d'autre solution plus simple^^

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 11
    Par défaut
    Merci de ta réponse, mais le problème n'est pas là,
    Lorsque je charge la page, j'appelle une requête du type :
    mysql_query ("select... order by rand()",...

    le rand() est donc ici une valeur généré par mysql et je voudrais remplacer ce rand() par un système de tri aléatoire que je gère en externe du style
    ... order by 'myValue'"

    évidement si tu mets autre chose qu'un nom de champ ou rand() ici ça bloque...
    Bon je cherche peut-être un truc impossible.
    Mais si c'est pas possible dans la requête, comment générer un tri aléatoire sur cette requête : j'ai dans ma table plusieurs valeurs de type : id, name, telephone, ... et même un champ 'ordre_tri' qui me permet de classer mes fiches comme je veux.
    je suis bloqué là...

  4. #4
    Membre confirmé
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Janvier 2005
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 101
    Par défaut
    Si tu fais Rand(round(time()/3600)) tu devrait avoir qu'une seule liste différente chaque heure.
    Aprés il faut creuser un peu plus pour avoir une heure a partir de la première génération de la liste. Tout dépend de ton application, tes possibilités...

Discussions similaires

  1. Requête avec tri aléatoire
    Par drikcc dans le forum Doctrine2
    Réponses: 2
    Dernier message: 10/01/2012, 00h51
  2. Requete sur deux tables avec tri
    Par ebaoo dans le forum MySQL
    Réponses: 2
    Dernier message: 25/02/2010, 18h41
  3. Requete SELECT + IF = Pb avec tri N) et Date
    Par Marmotton76 dans le forum Requêtes
    Réponses: 1
    Dernier message: 23/03/2008, 21h36
  4. tri aléatoire avec une somme fixe
    Par mikele dans le forum Algorithmes et structures de données
    Réponses: 5
    Dernier message: 23/09/2007, 20h34
  5. requete avec tri sur date erronée
    Par olivll dans le forum Access
    Réponses: 11
    Dernier message: 20/10/2005, 15h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo