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 :

Affichage requête aléatoire paginé


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de bodysplash007
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    154
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 154
    Par défaut Affichage requête aléatoire paginé
    Bonjour,
    Voila j'aimerai afficher le resultat d'une requete de manière aléatoire. Je m'explique, lorsque j'affiche ma requete qu'elle me l'affiche jamais déux fois dans le même ordre.

    Est ce possible?? j'ai mené ma petite enquete mais j'ai trouve que la focntion rand en PHP mais c'est pour des nombres.

    Si quelqu'un a une idée, il est le bien venu.

    Merci a tous ceux qui répondront

  2. #2
    Membre Expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Par défaut
    Bonjour,

    Quand tu demandes a ce que le résultat ne soit jamais affiché deux fois dans le meme ordre, c'est deux fois de suite? ou vraiment jamais dans le meme ordre?

    Tu pourrais commencer par récupérer le résultat de ta requete dans un tableau, et ensuite selon ton choix, tu le mélanges plus ou moins aléatoirement. En très simple, tu prends le premier élément du tableau et tu l'ajoutes tout a la fin, comme ca ton résultat sera toujours différent (meme si tres ressemblant) mais tu peux faires des algos un peu plus compliqués pour mélanger (faire des reverse etc.)

  3. #3
    Membre confirmé Avatar de bodysplash007
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    154
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 154
    Par défaut
    En fait je recherche juste a ce que mes enregistrement ne s'affiche pas dans les meme ordre deux fois de suite.

    par exemple

    enregistrement 1
    enregistrement 2
    enregistrement 3

    puis lors de ma recherche suivante on pourrait avoir:

    enregistrement 2
    enregistrement 3
    enregistrement 1

    Mais tou ça sans jamais afficher 2 fois le meme enregistrement

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Pour MySQL :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT ... ORDER BY RAND();

  5. #5
    Membre Expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Par défaut
    Citation Envoyé par julp
    Pour MySQL :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT ... ORDER BY RAND();
    Je dirai que ca, ca va juste choisir sur quelle colonne trier, donc s'il a 100 colonnes ca peut valoir le coup mais avec 3 colonnes et 10 000 résultats ca ne lui fera pas beaucoup de différences.

    Ton affichage doit être distinct quand on fait plusieurs fois la recherche de suite? ou sur plusieurs jours?
    Parce que dans le premier cas, le fait de récupérer tout dans un tableau, et de lafficher dans le désordre c'est assez facile. Tu mémorises a quel "mélange" tu étais la fois précédente et tu recommences.

  6. #6
    Membre confirmé Avatar de bodysplash007
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    154
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 154
    Par défaut
    EN fait chaque fois que je clique sur mon bouton rechercher je dois avoir un affichage different.

    En fait j'ai penser a un truc mais j'aimerai votre avis

    je compte recuperer les ids des annonces et en faire un vecteur, ensuite creer un deuxieme vecteur avec le meme nombres de champ et ou il y aurait que des 0.

    une fois ça je compte le nombre de ligne recuperées.

    Bon je genere un nombe avec le rand entre 0 et le nombre de ligne de la requete

    ensuite je teste si dans le tab2 (la ou les champs sont a 0) à l'indice généré par rand, le contenu est égal à 0.

    Si oui je l'affiche via son ID qui est dans le tab1 au meme indice puis dans le tab2 je met 1 et ensuite je regenere un nombre

    Si non je regenere un nouveau nombre


    Je continue ça tant que tout les champs de mon tab2 ne soit pas égale a 1.
    Et a ce moment la tout les champs de m'arequete seront afficher dans un ordre different chaque fois.

    Mon procédé n'est que théorique j'y bosse dessu mais penser vous que c'est un bon ou dois je plutot essayer autre chose???

  7. #7
    Membre Expert

    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 249
    Par défaut
    Citation Envoyé par koopajah
    Je dirai que ca, ca va juste choisir sur quelle colonne trier, donc s'il a 100 colonnes ca peut valoir le coup mais avec 3 colonnes et 10 000 résultats ca ne lui fera pas beaucoup de différences.

    Ton affichage doit être distinct quand on fait plusieurs fois la recherche de suite? ou sur plusieurs jours?
    Parce que dans le premier cas, le fait de récupérer tout dans un tableau, et de lafficher dans le désordre c'est assez facile. Tu mémorises a quel "mélange" tu étais la fois précédente et tu recommences.
    Non,
    ORDER BY RAND() fonctionne tres bien, c'est une fonctionnalité de mysql et ca ne va pas "trier sur une colonne au hasard". Essaye avec une table ne contenant qu'une seule colonne et 10 enregistrement, tu finiras pas avoir les 10 enregistrements si tu execute assez de fois la requete.

Discussions similaires

  1. [MySQL] Pagination requète aléatoire
    Par tom.dev dans le forum PHP & Base de données
    Réponses: 14
    Dernier message: 28/11/2013, 15h17
  2. Requête aléatoire et pagination
    Par Nowwis dans le forum Langage
    Réponses: 4
    Dernier message: 11/08/2011, 19h09
  3. [MySQL] Affichage requête imbriquée
    Par sql dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 07/04/2006, 21h48
  4. affichage requête sql sous phppgadmin
    Par kerzut dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 25/02/2005, 12h39
  5. Réponses: 15
    Dernier message: 20/07/2004, 09h22

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