Résultat aléatoire

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

  • Agrepe
    a répondu
    Bonjour,
    Excusez-moi, j'ai été très occupé ces derniers temps.
    Alors j'ai trouvé la solution.

    J'ai ajouté cela dans mon fichier dans model:

    Code PHP:
    $randomSort = isset($options['randomSort']) && $options['randomSort'] ? $options['randomSort'] : '';
     if (
    $sort != 'lastseen' && $randomSort) {
           
    $query[] = 'order by rand()';
     } 

    Puis dans mon fichier php:

    Code PHP:
    $options = array('state' => SOCIAL_FRIENDS_STATE_FRIENDS 'limit' => 50'randomSort' => true); 

    Bien cordialement.

    Eric


    Laisser un commentaire:


  • cavo789
    a répondu
    Bonne idée mais bien comprendre : shuffle nécessite que les données soient en mémoire (dans un array) ==> s'il y a 10.000 records dans la table, il faut récupérer tous les records (avec un SELECT ...) puis faire le shuffle pour n'en garder que 100.

    Sur le plan de la performance; c'est contre-productif (avec 10.000 records et 100 valeurs gardées; on jette donc 99% des données récupérées à la poubelle)

    Laisser un commentaire:


  • Wismer
    a répondu
    Salut

    As tu regardé la fonction shuffle.
    Ensuite, tu la limites a 100.

    ++
    Wis

    Laisser un commentaire:


  • cavo789
    a répondu
    Bonjour

    Pas réellement parce que $model->getFriends est une méthode de EasySocial et à moins de maîtriser ce composant, personne ne sait ce que fait getFriends() ;-)

    Je reste cependant sur ma présomption qu'il ne s'agit in fine que de rajouter "LIMIT xxx" à l'instruction SQL et ma réponse reste donc : non, ce n'est pas aléatoire.

    Sous Joomla Admin, active le mode debug et affiche ta page avec ton module. Tu devrais voir au bas de l'écran une zone avec toutes les instructions SQL. Si tu vois mon fameux LIMIT avec ton nombre alors c'est bien ce que je dis; pas de random mais les xxx premiers selon le tri qui est fait.

    Laisser un commentaire:


  • pmleconte
    a répondu
    Bonjour Eric,

    Comme écrit par Christophe, ton bout de code est insuffisant. Les options sont utilisées dans ton modèle Friends. Si tu regardes, par exemple, le modèle contacts de com_contact (adminstrator/components/com_contact/models/contacts.php), il y a une fonction getListQuery qui fait la requête sql adéquate.

    Pascal

    Laisser un commentaire:


  • Agrepe
    a répondu
    Bonjour cavo,
    Il s'agit de modules Easysocial que je développe.

    Voici le petit bout de PHP concerné :
    Code PHP:
    $id $this->input->get('userid'null'int'); // ID de l'élément dans l'URL
            
    $user ES::user($id); // ID de l'utilisateur
            
    $model ES::model('Friends');
            
    $options = array('state' => SOCIAL_FRIENDS_STATE_FRIENDS 'limit' => 100); // Tableau des amis
            
    $friends $model->getFriends($user->id$options);// Liste des amis de l'utilisateur 
    J'ai besoin de créer un tableau qui contiendrait X éléments (100 dans mon exemple) mais cela de façon aléatoire parmi une grande quantité d'éléments.

    Suis-je plus clair ?

    Cordialement.

    Eric

    Laisser un commentaire:


  • cavo789
    a répondu
    Bonjour

    De ce que je lis tu définis une variable nommée options et qui est un array.

    Ensuite c'est madame Irma qu'il faut appeler car où et comment tu utilises options ?

    Je présume que limit est utilisé dans un Query et je présume donc qu'il n'y a donc pas de rando. Un SELECT... LIMIT prends les premiers du recordset

    Laisser un commentaire:


  • Agrepe
    a crée un sujet [RÉGLÉ] Résultat aléatoire

    Résultat aléatoire

    Bonjour,

    J'ai mis cette ligne dans un de mes modules :

    Code PHP:
    $options = array('state' => SOCIAL_FRIENDS_STATE_FRIENDS 'limit' => 100); 
    Je limite la quantité de résultat à 100, car j'ai, pour le moment, des cas ou j'arriverai à presque 3000 résultats.
    J'aimerai que ces 100 résultats ne soient pas toujours les mêmes.

    Existe-t-il une commande pour obtenir des résultats aléatoires ?

    Cordialement.

    Eric

Annonce

Réduire
Aucune annonce pour le moment.

Partenaire de l'association

Réduire

Hébergeur Web PlanetHoster
Travaille ...
X