Peut on attraper un utilisateur aleatoirement dans une bdd? [RESOLU] - PHP - Programmation
Marsh Posté le 22-06-2004 à 23:53:07
ben ça doit pas être trop compliqué ...
tu récupères le nombre de tables (sous Oracle, dans la table all_tables), tu fais un random dessus, pour récupérer une table au hasard.
Ensuite tu récupères le nombre de lignes dans cette table, et tu fais un nouveau random dessus, et tu chopes cette ligne là
Marsh Posté le 22-06-2004 à 23:57:34
ouai, c'est le premier truc qui m'est venu a l'esprit, mais imagine que je supprime un utilisateur ...
il me reste genre les ligne 1,2,3,4,5,7,8,9,...
je fait un rand(1,10) par exemple, et je tombe sur le 6 ...
ca va pas gener ?!
Marsh Posté le 23-06-2004 à 00:02:48
tu fais d'abord un select id from matable;
tu fais un rand() tu regardes s'il est dans le tableau d'id que tu viens de recuperer
- si oui tu vas puiser en base
- sinon tu boucles sur le rand()
Marsh Posté le 23-06-2004 à 00:05:05
ah ouai pas bete, moi je sais pas pourquoi mais le SELECT jvoulais absolument le mettre apres le rand() ...
oki merci j'ai essayer comme ca je verrai bien
Marsh Posté le 23-06-2004 à 00:05:59
bah il peut pas faire tout simplement:
Code :
|
Marsh Posté le 23-06-2004 à 00:12:10
ben non ca m'etonnerait que ca marche ca
Marsh Posté le 23-06-2004 à 00:14:31
par contre apparemment tu peux faire ca :
SELECT * FROM maa_table order by rand() LIMIT 0,1
Marsh Posté le 23-06-2004 à 08:25:02
t'es pas obligé de faire un random sur un champ, tu peux le faire sur le numéro (interne) de la ligne.
En Oracle, le rownum sert à ça je pense.
Marsh Posté le 23-06-2004 à 12:19:10
Il suffit de regarder dans la doc
http://dev.mysql.com/doc/mysql/en/ [...] tions.html
Rand utilsé en coopération avec LIMIT
Marsh Posté le 22-06-2004 à 23:19:21
ben voila, comme le titre l'indique j'aimerais connaitre si il existe une fonction qui prend un ligne aleatoirment ds la bdd ...
jai deja reflechi a pas mal de truc mais j'avoir que je vois pas comment faire...
Message édité par N@rcoleptik le 23-06-2004 à 19:27:30