PHP - aléatoire

afterlove Messages postés 2 Date d'inscription mardi 21 mars 2006 Statut Membre Dernière intervention 25 août 2006 - 25 août 2006 à 12:21
coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 - 20 avril 2007 à 18:25
Bonjour,

Je souhaiterais savoir s'il existe des fonctions permettant de classer de manière aléatoire ?

En pratique, j'ai une liste de A à Z et j'aimerais que les données dans cette liste soient affiché de manière aléatoire...
Merci à vous,

Stéphane

16 réponses

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
25 août 2006 à 12:25
Hello,

une liste de quoi? Stockée dans quoi ?
Il y a un tas de fonctions en rapport avec l'aléatoire.
Explique mieux ce que tu veux.
0
afterlove Messages postés 2 Date d'inscription mardi 21 mars 2006 Statut Membre Dernière intervention 25 août 2006
25 août 2006 à 12:39
C'est un annuaire avec des gens qui se sont inscrit.
J'aimerais que chaque personne soit dedans de manière aléatoire

C'est stocké dans une base données, différents champs
id (int - auto_increment)
nom (mediumtext)
url (mediumtext)
img (mediumtext)
adresse (text)
phone (mediumtext)
gsm (mediumtext)
fax (mediumtext)
mail (mediumtext)
province (mediumtext)
id_s (int)
position (int)
0
coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 4
25 août 2006 à 12:42
Salut!
SELECT nom, url, fax FROM table ORDER BY RAND() LIMIT 0, 10

@++

R@f

www.allpotes.ch: Photos, humour, vidéos, gags, ...
"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
0
cs_jean84 Messages postés 449 Date d'inscription jeudi 26 août 2004 Statut Membre Dernière intervention 5 mars 2009
25 août 2006 à 15:02
Ah pas bete comme astuce.. a defaut de les enregistrer
aleatoirement, tu les selectionne aleatoirement ! J'y aurais pas penser
tiens !


@++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
25 août 2006 à 17:57
De toutes façons, la notion d'ordre dans une bdd est toute subjective...
0
cs_eXon Messages postés 166 Date d'inscription lundi 17 janvier 2005 Statut Membre Dernière intervention 8 avril 2007 1
25 août 2006 à 18:49
Pour classer aléatoirement un tableau tu peux également utiliser la fonction array_rand:
mixed array_rand ( array input [, int num_req] )

----------------
eXon
http://www.lookstrike.com
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
26 août 2006 à 12:22
Lol, eXon, le roi des solutions alternatives... ;-)
0
cs_eXon Messages postés 166 Date d'inscription lundi 17 janvier 2005 Statut Membre Dernière intervention 8 avril 2007 1
26 août 2006 à 14:58
Tous problèmes a mile et une solution, pourquoi pas laisser lui qui la prend choisir la plus adapté ;)

----------------
eXon
http://www.lookstrike.com
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
26 août 2006 à 15:12
(j'ai supprimé les msg en trop).
C'est vrai, eXon. Sauf que...quelle est la solution la plus adapté, dans ce cas-ci, à ton sens ?
Je réponds lol : la solution SQL. Elle sera plus rapide et plus efficace. Dans ton as, tu récupères des infos (un select), tu parcours un résultat (while...), tu mets chaque résultat dans un tableau, puis tu tries aléatoirement le tableau,e t enfin, tu dois boucler dessus pour l'afficher.
En SQL : tu récupères un jeu de résultat déjà trié. Et tu l'affiches au fil de l'eau (dans le while); un SELECT...ORDER BY RAND() est bien plus rapide! Donc, cette solution est optimisée et plus courte.

Même si ta solution fonctionne, ET peut-être très utile dans certains cas :-)
0
cs_jean84 Messages postés 449 Date d'inscription jeudi 26 août 2004 Statut Membre Dernière intervention 5 mars 2009
26 août 2006 à 16:27
tiens je connaissais pas array_rand()... il se base sur quoi pour trier aleatoirement ? y a un indice a lui transmettre pour le permettre d'executer sa tache ??

@++
0
cs_eXon Messages postés 166 Date d'inscription lundi 17 janvier 2005 Statut Membre Dernière intervention 8 avril 2007 1
26 août 2006 à 21:10
Il retourne la valeur de $array[1] exemple, il en prend un carément au hasard. Tu peux lui spécifier comme deuxième argument le nombre de valeurs aléatoires que tu veux également. Pour plus d'info: www.php.net/array_rand

----------------
eXon
http://www.lookstrike.com
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
26 août 2006 à 21:21
PHP a viré depuis un moment la nécessité d'initialiser une "seed" pour ses fonctions aléatoires, pour info, jean84, si c'est ce que tu voulais savoir.
0
coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 4
27 août 2006 à 12:14
Yop!
Un autre pb avec la solution de eXon: si tu veux 10 enregistrements sur 1000, pas de pb avec solution SQL. Mais sinon, tu dois récupérer les 1000, les classer, et afficher les 10 premiers, bizarre...

@++

R@f

www.allpotes.ch: Photos, humour, vidéos, gags, ...
"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
0
cs_jean84 Messages postés 449 Date d'inscription jeudi 26 août 2004 Statut Membre Dernière intervention 5 mars 2009
27 août 2006 à 21:00
malalam > c'etait precisement ma question merci :-)

Vive PHP (et XSLT ... lol.. je bosse dessus en ce moment :p ) !!
0
cs_simeone Messages postés 3 Date d'inscription vendredi 20 avril 2007 Statut Membre Dernière intervention 20 avril 2007
20 avril 2007 à 18:18
salut tt le monde,
j'ai un projet a rendre dans pas longtemps d'un site intranet il me reste :
1: code source d'un trombinoscope
2: code source d'un forum
je vous en pris de bien vouloir m'aider
0
coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 4
20 avril 2007 à 18:25
Salut!
  Tu devrais créer un nouveau sujet en expliquant bien ton pb et où tu bloques (sachant que personne ne te fera un script entier sans $$ ).

@++

R@f

La boîte à bouts de codes
"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
0
Rejoignez-nous