Jump to content

Archived

This topic is now archived and is closed to further replies.

Wayder

How to randomise selected?

Recommended Posts

Hi,

 

I need to randomise the selected rows.

 

$sql = mysql_query(\"SELECT col1, col2, col3, col4 FROM table WHERE col2 = \'$a\' or col3 = \'$b\' or col4 = \'$ip\' limit 0,6\") or die(mysql_error())

 

I have my first six rows. How do I randomise the 6 selected rows?

 

Thanks :)

Share this post


Link to post
Share on other sites

Use MySQL\'s built in random function :D


$sql = mysql_query("SELECT col1, col2, col3, col4 FROM table WHERE col2 = \'$a\' or col3 = \'$b\' or col4 = \'$ip\' ORDER BY rand() limit 0,6") or die(mysql_error())  

Share this post


Link to post
Share on other sites

Thanks ben :D I tried that, but it does not do what I need.

 

You see, the code first randomises, then restricts to the first six. What I need to do, is to restrict to the first six, then randomise only the six.

Share this post


Link to post
Share on other sites

use2 sql querie.

 

the first one gets the max number off rows in the table, and saves this number into an var.

then use the randomze function from php to generate an random number.

 

now run an second sql querie that also limits the 6 collums (or whatever), and specify in the query the number you let php generate.

 

and you have an random record out off ythe table.

 

this is an example coe that i use.


$q = "SELECT COUNT(*) AS c FROM news WHERE typ = \'news\' AND approved = 1 AND theme <> \'$sms_subj\'";

$result = mysql_db_query($edge_database,$q,$mysql);

$row = mysql_fetch_object($result);

$rnd = rand(1,$row->c);

$q = "SELECT * FROM news WHERE id = $rnd";

$result = mysql_db_query($edge_database,$q,$mysql);

$row = mysql_fetch_object($result);

echo "<p class=edgenormal>";

edge_do_title("Random old article");

?>

<center><a href=newsread.php?newsid=<? echo $row->id; ?>><? echo $row->title; ?></a></center>

</p>

 

i hope this helps:)

Share this post


Link to post
Share on other sites

×

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.