Réaliser un tirage au sort de n enregistrements

Eléphant du PHP | 331 Messages

14 sept. 2008, 16:38

Bonjour,

Voici un exemple pour mieux comprendre :

Imaginons un recordset qui contient 100 enregistrements.
Je voudrais tirer au hazard 5 d'entre eux.
Cela pour ensuite rentrer en contact avec les gagnants et effectuer d'autres traitements.


Ma question est donc la suivante : comment sortir n enregistrements d'une requete qui retourne x résultats ?

Merci !

Mammouth du PHP | 693 Messages

14 sept. 2008, 16:45

Tu peux mettre tes résulats dans un tableau indexé numériquement puis utliser la fonction rand() n fois. Ensuite, il ne reste qu'a extraire les resulatats correspondant aux clefs tirés.

ViPHP
ViPHP | 3607 Messages

14 sept. 2008, 18:06

Sinon tout en mysql, tu fait comme ceci:

Code : Tout sélectionner

SELECT [...] INTO [...] WHERE [...] ORDER BY RAND() LIMIT(0,5)
;)

Eléphant du PHP | 331 Messages

14 sept. 2008, 19:42

Sinon tout en mysql, tu fait comme ceci:

Code : Tout sélectionner

SELECT [...] INTO [...] WHERE [...] ORDER BY RAND() LIMIT(0,5)
;)
ORDER BY RAND ! => Je ne connaissais pas ! SUPER comme solution, je teste ça de suite !

ViPHP
ViPHP | 3607 Messages

14 sept. 2008, 19:47

Par contre niveau performance, je suis pas sûr que ce soit le top, mais bon le tirage au sort, n'est pas fait toutes les minutes ;)

Eléphanteau du PHP | 36 Messages

15 sept. 2008, 09:32

array_rand aussi
Julien Pauli - Formateur pôle PHP ZendFramework chez Anaska
Contributeur au projet Zend Framework
Ma page de tutoriaux, mon blog