View Full Version : Mysql query help !!! trying to select random user
derfelix
12-12-2001, 06:12 AM
Hi
my problem is the following:
I'm trying to select a random user..
so people can click "view random user profile"
as my provider is running older version of mysql i couldn't use the sort by rand() option.. but i found something that worked...
$radnomuser = $DB_site->query("SELECT *, userid*0+rand() as randomizer FROM user order by randomizer LIMIT 1");
works fine but:
How can I prevent that when user clicks "next random profile"
(such a button is put in the profile)
that he gets the same one or the ones he just viewed before...
would appreciate help very much!
(its driving me crazy!!! :eek: )
try this
if ($x != $xold){
$radnomuser = $DB_site->query("SELECT * FROM user WHERE userid = '$x'");
$xold = $x;
} else {
$numofusers// should be the total number of users u have i dont feel like writing here how to get em
$x = rand($numofusers);
}
derfelix
12-14-2001, 03:28 PM
thanks for your help...
$x = rand($numofusers);
i had already thought of something similar.. the only problem is when you usernumbers in between that are empty...
i meen like
users: 1,2,3,4,5,8,12,14
users 6,7,9,10,11,13 have been deleted for whatever reason...
then the problem starts... :(
but the $xold = $x; part is great.. ill start testing immediately
hmm yea that migh be a problem but heres the fix
if ($x != $xold){
$uid = $DB_site->query("SELECT id FROM user WHERE userid = '$x'");
if (affected($uid)){
$radnomuser = $DB_site->query("SELECT * FROM user WHERE userid = '$x'");
$xold = $x;
} else {
$x = rand($numofusers);
}
} else {
$numofusers// should be the total number of users u have i dont feel like writing here how to get em
$x = rand($numofusers);
}
derfelix
12-16-2001, 09:10 AM
Well i tried to implement this..(yes i know how to get the number of users)
but the problem persists...
i think the problem lies else where..
i have to randomize the usernumbers and NOT the number of users
maybe my example was not clear enough:
- I have 5 users in db..users 1,2,5,12,11 and 13
actually i have to get the number of resultrows...
which are resultrows 1 to 5
- then i randomize the numbers 1 to 5 reslut: 3
it is not usernumber 3 i want to get (he doesn't exist by the way) but the third resultrow.
that is problem number 1
now to problem number 2:
supposed i solved that, if i randomize everytime i click a random profile, i can get if i do it 5 times:
rows: 1,3,3,4,1 which i dont want..
i want to be able to get:
1,5,3,4,2 for example... and the next time i do it 3,4,2,5,1 (for example)
i'm not so much interested in the exact code (i should be able to find it) but rather in the way to do it...
the code above
$radnomuser = $DB_site->query("SELECT *, userid*0+rand() as randomizer FROM user order by randomizer LIMIT 1");
works fine to give me ONE random profile.. (even in php3)
but it with 5 users for example it gives me at least 2 users twice in 5 goes... (which is normal when you randomly draw 5 objects out of bag)
any ideas?????
plz!!!
vBulletin® v3.8.12 by vBS, Copyright ©2000-2025, vBulletin Solutions Inc.