Salut tout le monde,

J'aimerais savoir s'il y a une méthode pour sélectionner un id existant de maniere aléatoire dans une table .
Je fais un site où il y a un profil affiché en page d'accueil, et j'aimerais que le profil ne soit pas le même.

j'ai essayé avec un

$count = $this->User->find('count');
 $rand = rand(1, $count);
        while ($this->User->id == $rand) {
            return true;
        }
        $this->set('rand', $rand);

mais le probleme c'est que si par exemple j'ai deux profils dans ma base. Un qui a l'id 1 et l'autre 11. le $count va me sortir 2.
Du coup le $rand va etre entre 1 et 2, donc ca sera faussé.

Merci pour votre aide :)

2 réponses


Glaived
Réponse acceptée

La solution est con, mais faut-il encore la connaitre ! C'est une truc sur le quel j'étais tomber il y a de cela bien longtemps, ou les Dieu étaient légion, et où l'apocalypse était pris plus qu'au sérieux...

M'enfin toujours est-il que c'est un ORDER BY RAND() dans ta requête qu'il faut placer, après pour l'appliquer avec l'ORM de Cake, je ne serais te dire.

EDIT: Normalement, un

$this->User->find('first', 'order' => 'rand()']);

devrais faire l'affaire.

0-sony
Auteur

Merci !!!! J'ai juste rajouté 'fields' => 'id' pour récupérer que l'id parce que je n'ai besoin que de ca .
Mais c'est exactement ce que je cherchais! C'est vrai que c'est tout simple mais fallait il encore le savoir.
Bonne soirée =))