Wayder Posted April 18, 2003 Share Posted April 18, 2003 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 Quote Link to comment https://forums.phpfreaks.com/topic/365-how-to-randomise-selected/ Share on other sites More sharing options...
benW Posted April 19, 2003 Share Posted April 19, 2003 Use MySQL\'s built in random function $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()) Quote Link to comment https://forums.phpfreaks.com/topic/365-how-to-randomise-selected/#findComment-1209 Share on other sites More sharing options...
Wayder Posted April 19, 2003 Author Share Posted April 19, 2003 Thanks ben 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. Quote Link to comment https://forums.phpfreaks.com/topic/365-how-to-randomise-selected/#findComment-1212 Share on other sites More sharing options...
Cereal Posted April 19, 2003 Share Posted April 19, 2003 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:) Quote Link to comment https://forums.phpfreaks.com/topic/365-how-to-randomise-selected/#findComment-1213 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.