Partage
  • Partager sur Facebook
  • Partager sur Twitter

Fonction qui choisi au hasard

Sujet résolu
    30 août 2006 à 21:52:07

    Bonjour a tous

    je vodurasi savoir comment s'appelle la fonction qui selectionne une id au hasard enfin qui selectionne quelque chose au hasard et comment elle marche

    Merci
    • Partager sur Facebook
    • Partager sur Twitter
      30 août 2006 à 22:02:30

      Salut,

      je suppose que tu veux parler d'une requête SQL. Dans ce cas tu as la fonction RAND() qui peut t'aider :

      SELECT id FROM TABLE ORDER BY RAND() LIMIT 1


      Attention !

      Si cette méthode est la plus simple elle n'est pas forcément la plus économique en matière de ressources. En effet mySQL trie d'abord toutes les données avant d'en choisir une au hasard. Si tu effectues la requête sur une table avec beaucoup d'entrées ça risque de ralentir un peu ta page.

      Autre solution

      Elle consiste à d'abord compter le nombre d'entrées dans ta table pour ensuite géénérer un nombre aléatoire dans cet intervalle :


      // On compte le nombre d'entrée
      $req = mysql_query("SELECT COUNT(*) AS nb FROM table");
      $sql = mysql_fetch_array($req);
      // On sélectionne un nombre aléatoire entre 1 et ce nombre
      $alea = mt_rand(1, $sql['nb']);
      // On sélectionne l'entrée correspondant à cet id
      $req2 = mysql_query("SELECT * FROM table WHERE id=".$alea."")


      A adapter à ta sauce évidemment. J'ai pas testé (j'ai tapé le code comme ça) mais en théorie ça marche.
      Ca implique que ta table ait un champ id en auto_increment et que tous les id sont présents. Sans quoi mets un petit script pour vérifier la présence de cet id dans la table.

      ++
      • Partager sur Facebook
      • Partager sur Twitter
        30 août 2006 à 22:12:18

        Ok merci
        je pênse utiliser la première solution

        Merci
        • Partager sur Facebook
        • Partager sur Twitter

        Fonction qui choisi au hasard

        × 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