order par rand

Réduire
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • order par rand

    Bonjour,

    Pour faire suite au post précédent, j'ai besoin d'afficher 4 éléments extraits d'une quantité X, pour cela je cherche une doc à ce sujet, je ne trouve pas.

    Voici :
    Code PHP:
    $EnVedette="oui";

    $db JFactory::getDbo();
    $query $db->getQuery(true);
    $query->select(array('id','nom','image_principale','denivele_min','denivele_max','altitude','altitude_max','sommet','duree'))            
    ->
    from($db->quoteName('#__randonne_randonnees'))        
    ->
    where($db->quoteName('en_vedette')." = ".$db->quote($EnVedette));        
    $query->order('ordering ASC');        
    $query->setLimit(4);                              

    $db->setQuery($query);                  
    $ListRandos $db->loadAssocList(); 
    J'ai tenté plusieurs idées qui utilisent "order by rand()" tel que "$query->order('RAND() LIMIT 4');" pour afficher des résultats au hasard, mais aucune ne fonctionnent.

    Comment feriez-vous ?

    Cordialement.

    Eric

  • #2
    Non testé

    Dans ton select avec ta liste de colonnes, ajoute une colonne Rand () pour générer aléatoirement une valeur puis fait un order by sur cette colonne.
    Christophe (cavo789)
    Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be
    Logiciel gratuit de scan antivirus : https://github.com/cavo789/aesecure_quickscan (plus de 45.000 virus détectés, 700.000 fichiers sur liste blanche)​

    Commentaire


    • #3
      Bonjour cavo789,

      Merci beaucoup pour ton aide.
      je fais quelque chose comme ça ?

      Code:
      ...
      $query->select(array('id','nom','image_principale','denivele_min','denivele_max','altitude','altitude_max','sommet','duree','Rand()'))            
          ->from($db->quoteName('#__randonne_randonnees'))        
          ->where($db->quoteName('en_vedette')." = ".$db->quote($EnVedette));        
          //$query->order('ordering ASC');
          $query->ORDER BY Rand();
      ...
      Mais cela ne fonctionne pas, erreur 500.

      Comment faire le order by Rand() ?

      Cordialement.

      Eric

      Commentaire


      • #4
        Bonsoir

        J'avais répondu en étant dans les transports en commun; sans tester.

        Mon idée était, en SQL, de faire un SELECT ..., rand() as aleatoire FROM ... ORDER BY aleatoire; cela dans l'hypothèse qu'un ORDER BY rand() n'était pas possible.

        Toutefois https://stackoverflow.com/questions/...-rand-name-asc montre que cela devrait fonctionner.

        Sorry, je n'ai personnellement pas l'habitude de le coder sous Joomla. Je ne saurais t'aider sur la syntaxe.

        Bonne soirée
        Christophe (cavo789)
        Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be
        Logiciel gratuit de scan antivirus : https://github.com/cavo789/aesecure_quickscan (plus de 45.000 virus détectés, 700.000 fichiers sur liste blanche)​

        Commentaire


        • #5
          Bonjour,
          Merci pour ton aide, je cherche aussi à me documenter en parallèle, je ne trouve rien de précis.
          Je persévère.
          Cordialement.
          Eric

          Commentaire

          Annonce

          Réduire
          Aucune annonce pour le moment.

          Partenaire de l'association

          Réduire

          Hébergeur Web PlanetHoster
          Travaille ...
          X