No, I wouldn't do that.  What if another quote gets deleted.  The new
assigned
QuoteID would be 6 and your solution wouldn't work.

This would:
/* selecting a random record, where n = 1.  Works fine on small tables */
mysql> SELECT value FROM table ORDER BY RAND() LIMIT n;

/* selecting a random record.  This is good on large tables if numbering
sequence is used */
mysql> SET @val = FLOOR(RAND() * n) + 1;
mysql> SELECT value FROM table WHERE ID = @val;

-----Original Message-----
From: Alex [mailto:[EMAIL PROTECTED]
Sent: Sunday, December 07, 2003 12:00 AM
To: [EMAIL PROTECTED]
Subject: [PHP] Re: Random Numbers..


Theheadsage wrote:
> Hey,
>
> I've got a script which used to generate a random quote. It worked fine
> untill this problem occurred..
>
> Say we have 4 quotes with QuoteID's of 1 through to 4
> The script would grab a number of rows, and generate a random number
> between 1 and this value (being 4 in this case) This worked fine untill,
> one of the quotes was removed and another added, leaving 4 quotes once
> again, but the last one had an ID of 5. The problem is the Random number
> generated is between 1 and 4, so the final quote is never shown..
>
> I tried using the RAND() function in the MySQL statement it's self, but
> it's not random enough...
>
> Then I thought of doing this:
>
> Select all the Quote ID's from the DB.
> Store them in an Array.
> Generate a random number between 1 and the last ID.
> If the Random Number matches a Quote ID, then display the quote,
> otherwise Generate another
>
> But I couldn't get the code to work. Any suggestions on either how to
> write the above, or made the MySQL RAND() function, more random?

how about if ($randnumber == 4) $randnumber++; ?

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to