Partage
  • Partager sur Facebook
  • Partager sur Twitter

Affichage de requête aléatoire

avec ORDER BY Rand()

    13 février 2006 à 19:01:36

    Bonjour,

    je souhaite afficher le résultat d'une requête de manière aléatoire
    Voici mon code actuelle et lorsque je le modifie avec un ORDER BY Rand(), cela ne marche pas ... :euh:

    Requête Actuelle :
    mysql_query('SELECT * FROM moto WHERE photo=\'OUI\' AND active=\'1\' ORDER BY gid DESC LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage);

    Requête modifiée, mais qui ne fonctionne pas o_O :
    mysql_query('SELECT * FROM moto WHERE photo=\'OUI\' AND active=\'1\' ORDER BY Rand() ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage);</


    Et j'ai aussi essayé:
    mysql_query('SELECT * FROM moto WHERE photo=\'OUI\' AND active=\'1\' ORDER BY Rand() LIMIT 4 ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage);</


    MERCI D'AVANCE POUR TOUT AIDE :p
    • Partager sur Facebook
    • Partager sur Twitter
      13 février 2006 à 19:09:17

      Le Rand(), je crois bien, n'a pas sa place dans les script mysql.

      À la place, pour l'affichage, trouve un moyen de randomiser les clefs de l'array() dans lequel tu auras mis tes données.
      • Partager sur Facebook
      • Partager sur Twitter
        13 février 2006 à 19:10:58


        $requete = mysql_query('SELECT COUNT(*) FROM moto');
        $nombre = mysql_result($requete, 0);
        $rand = mt_rand(0, $nombre);
        mysql_query('SELECT * FROM moto WHERE photo=\'OUI\' AND active=\'1\' ORDER BY ' . $rand . ' DESC LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage);

        • Partager sur Facebook
        • Partager sur Twitter
          13 février 2006 à 19:19:47

          Ça ne marchera pas, ça va seulement te donner un chiffre, et le "ORDER BY" ordonne par photo, id, etc.
          • Partager sur Facebook
          • Partager sur Twitter
            13 février 2006 à 19:31:15

            Heu oui tu as raison, je me suis trompé, c'est plutôt ça :
            $requete = mysql_query('SELECT COUNT(*) FROM moto');
            $nombre = mysql_result($requete, 0);
            $rand = mt_rand(0, $nombre);
            mysql_query('SELECT * FROM moto WHERE photo=\'OUI\' AND active=\'1\' DESC LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage . ' WHERE id=' . $rand);
            • Partager sur Facebook
            • Partager sur Twitter
              13 février 2006 à 19:45:36

              Encore là, ça ne fait que sortir UNE donnée, qui est celle qui sera sorti par $rand.

              Je reste sur l'avis que la randomisation se fait APRÈS la requête SQL.
              • Partager sur Facebook
              • Partager sur Twitter

              Affichage de requête aléatoire

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown