PHP - aléatoire

Signaler
Messages postés
2
Date d'inscription
mardi 21 mars 2006
Statut
Membre
Dernière intervention
25 août 2006
-
Messages postés
2268
Date d'inscription
mercredi 27 novembre 2002
Statut
Membre
Dernière intervention
13 septembre 2013
-
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

Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
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.
Messages postés
2
Date d'inscription
mardi 21 mars 2006
Statut
Membre
Dernière intervention
25 août 2006

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)
Messages postés
2268
Date d'inscription
mercredi 27 novembre 2002
Statut
Membre
Dernière intervention
13 septembre 2013
3
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???"
Messages postés
449
Date d'inscription
jeudi 26 août 2004
Statut
Membre
Dernière intervention
5 mars 2009

Ah pas bete comme astuce.. a defaut de les enregistrer
aleatoirement, tu les selectionne aleatoirement ! J'y aurais pas penser
tiens !


@++
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
De toutes façons, la notion d'ordre dans une bdd est toute subjective...
Messages postés
166
Date d'inscription
lundi 17 janvier 2005
Statut
Membre
Dernière intervention
8 avril 2007
1
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
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
Lol, eXon, le roi des solutions alternatives... ;-)
Messages postés
166
Date d'inscription
lundi 17 janvier 2005
Statut
Membre
Dernière intervention
8 avril 2007
1
Tous problèmes a mile et une solution, pourquoi pas laisser lui qui la prend choisir la plus adapté ;)

----------------
eXon
http://www.lookstrike.com
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
(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 :-)
Messages postés
449
Date d'inscription
jeudi 26 août 2004
Statut
Membre
Dernière intervention
5 mars 2009

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 ??

@++
Messages postés
166
Date d'inscription
lundi 17 janvier 2005
Statut
Membre
Dernière intervention
8 avril 2007
1
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
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
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.
Messages postés
2268
Date d'inscription
mercredi 27 novembre 2002
Statut
Membre
Dernière intervention
13 septembre 2013
3
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???"
Messages postés
449
Date d'inscription
jeudi 26 août 2004
Statut
Membre
Dernière intervention
5 mars 2009

malalam > c'etait precisement ma question merci :-)

Vive PHP (et XSLT ... lol.. je bosse dessus en ce moment :p ) !!
Messages postés
3
Date d'inscription
vendredi 20 avril 2007
Statut
Membre
Dernière intervention
20 avril 2007

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
Messages postés
2268
Date d'inscription
mercredi 27 novembre 2002
Statut
Membre
Dernière intervention
13 septembre 2013
3
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???"