Posted by Joe on 01/08/06 01:00
"Stefan Rybacki" <stefan.rybacki@gmx.net> skrev i en meddelelse
news:42apniF1hejs7U1@individual.net...
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Joe wrote:
>> Hi
>> I need some help doing a easy php/sql solution to a random selection with
>> rated stuff.
>> I have a table like:
>>
>> Name Rated
>> --------------
>> Thompsen 500
>> Milla 10
>> Jensen 1
>>
>> Means that the name Thompsen appears 50 times as often as Milla and 500
>> times as often Jensen.
>>
>> I now need some scripting that counts the total ratefactor like
>> SELECT sum(Rated) FROM Table
>> In this case 511
>> And then make a random value between 1 and 511 and then print out the
>> name,
>> which in this case will be Thompsen 500 of 511 times (in avg)
>>
>> I need a quick way to find a name based on the Rated factors, any help?
>>
>
> 1. get your ratefactor (SELECT sum(rated) FROM table)
> 2. create a random number between 1 and ratefactor in PHP
> 3. get the random item (SELECT name FROM table WHERE
> rated>=created_randomnumber
> ORDER BY rated, rand() LIMIT 1)
>
> Regards
> Stefan
>
I think I need some explanation for this :-)
As I see it it will give equal chance of the three names if the random
number is 1, is that correct?
If that's correct it will not be 1/511 chance of the name Jensen to appear.
[Back to original message]
|