[RESOLU]Peut on attraper un utilisateur aleatoirement dans une bdd?

Peut on attraper un utilisateur aleatoirement dans une bdd? [RESOLU] - PHP - Programmation

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
Reply

Marsh Posté le 22-06-2004 à 23:19:21   

Reply

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à :)

Reply

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 ?!  :heink:

Reply

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()


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

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 :)

Reply

Marsh Posté le 23-06-2004 à 00:05:59    

bah il peut pas faire tout simplement:
 

Code :
  1. SELECT RAND(id) FROM matable


 
 :??:


Message édité par Ayuget le 23-06-2004 à 00:06:08
Reply

Marsh Posté le 23-06-2004 à 00:12:10    

ben non ca m'etonnerait que ca marche ca


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

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


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

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.

Reply

Marsh Posté le 23-06-2004 à 12:14:04    

oui mais en MYSQL ya ca ?

Reply

Marsh Posté le 23-06-2004 à 12:14:04   

Reply

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


Message édité par Lord II le 23-06-2004 à 12:19:36
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed