Reply to Re: [PHP] Re: using rand()

Your name:

Reply:


Posted by Richard Lynch on 04/09/05 06:27

On Fri, April 8, 2005 7:41 am, kyriacos sakkas said:
> first I would suggest you get the largest value from the auto increment
> field (maybe use last_insert_id()). Then use rand(1,$cno_max) three
> times to get three random cno numbers, then "select ... from ... where
> cno=$val1 or cno=$val2 or cno=$val3" should return the three values.
> rand() can also be directly in the sql statement.
> Also manual suggests using mt_rand instead of rand for better performance.

Reasons NOT to do this:

If you ever delete a record, then $val2 might not *BE* there.

To get the max(id) requires an extra query.

MySQL does *NOT* promise the numbers will be 1, 2, 3, 4, ...
Sure, they happen to be that *NOW* and it's unlikely to change, but it's
*NOT* a documented feature.

What if $val1 and $val2 both happen to come out as "42" one day? Then
you're not going to get 3 different records. ORDER BY rand() will always
return 3 different records.

It's unlikely that PHP's mt_rand() will be enough faster to justify using
it when a single SQL statement is so much more clear than 5 lines of PHP.

--
Like Music?
http://l-i-e.com/artists.htm

[Back to original message]


Удаленная работа для программистов  •  Как заработать на Google AdSense  •  England, UK  •  статьи на английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Сайт изготовлен в Студии Валентина Петручека
изготовление и поддержка веб-сайтов, разработка программного обеспечения, поисковая оптимизация