RE: [PHP] display query results at random
| From: | Philip Olson | Date: | Wed, 26 Sep 2001 04:53:51 +0000 |
| Subject: | RE: [PHP] display query results at random | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-68815@lists.php.net to get a copy of this message | ||
the sql RAND() function was mentioned, use it with ORDER BY
like this :
SELECT foo,bar FROM tablename ORDER BY RAND()
this use of RAND() requires at least version 3.23 you can
use LIMIT too :
SELECT foo,bar FROM tablename ORDER BY RAND() LIMIT 10
your result will be random, loop through accordingly. see :
http://www.mysql.com/doc/M/a/Mathematical_functions.html
for more details.
regards,
Philip Olson
On Wed, 26 Sep 2001, Matthew Delmarter wrote:
> Hi Lawrence,
>
> Thanks for your reply.
>
> I should clarify that I want to control where I output the result.
>
> Place 1 - show details for record 3 //I specifically want record 3
> details here
> Place 2 - show details for record 1 //I specifically want record 1
> details here
> Place 5 - show details for record 5 //I specifically want record 5
> details here
>
> What I meant by 'random' was that it's not in the order returned by
> the mysql query.
>
> Matthew
>
> -----Original Message-----
> From: Lawrence.Sheed@dfait-maeci.gc.ca
> [mailto:Lawrence.Sheed@dfait-maeci.gc.ca]
> Sent: Wednesday, September 26, 2001 3:56 PM
> To: matt@adplusonline.com
> Cc: php-general@lists.php.net
> Subject: RE: [PHP] display query results at random
>
>
> Return into an array, then loop through the array or shuffle it
> (easier)?.
>
> Note if you have nulls in DB, you will have to do something different.
>
> n'est pas?
>
> --------
>
> e.g. (untested)
>
> mysql_fetch_array
>
> <?php
> mysql_connect ($host, $user, $password);
> $result = mysql_db_query ("database","select user_id, fullname from
> table");
> $j=0;
> while ($row[$j] = mysql_fetch_array ($result)) {
> $j++;
> }
> mysql_free_result ($result);
>
> srand ((float)microtime()*1000000);
> shuffle ($row);
>
> //do output stuff with array
>
> ?>
>
> -----Original Message-----
> From: Matthew Delmarter [mailto:matt@adplusonline.com]
> Sent: September 26, 2001 12:01 PM
> To: PHP Mailing List
> Subject: [PHP] display query results at random
>
>
> How do I return a specific record from a db outside of the query?
>
> Let's say I "select * from table" (using mysql_fetch_object) and get 5
> results. I want to display the 5 results in different / random places
> on the page.
>
> Place 1 - show details for record 3
> Place 2 - show details for record 1
> Place 5 - show details for record 5
>
> How do I do this?
>
> I know how to loop thru a mysql result - but what if want to display
> things in a random order around the page? I could have multiple select
> statements - but this would increase the load on the server and is
> unnecessary as all the data was returned from the query - it's just a
> matter of knowing how to get it!
>
> Can anyone help?
>
> I am sorry if the question is confusing, but I can't think of a better
> way to explain it at the moment (i'm tired)...
>
> Matthew
>
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, e-mail: php-general-unsubscribe@lists.php.net
> For additional commands, e-mail: php-general-help@lists.php.net
> To contact the list administrators, e-mail:
> php-list-admin@lists.php.net
>
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, e-mail: php-general-unsubscribe@lists.php.net
> For additional commands, e-mail: php-general-help@lists.php.net
> To contact the list administrators, e-mail: php-list-admin@lists.php.net
>