help: rand ordering of data from mysql

admin

Administrator
Staff member
Please help.
I want to pull out data from a mysql database in a random order. I want multiple rows pulled out and I want next and prev buttons. I have it all working (the next and prev part) but when I add the ORDER BY RAND ( ) part I get the error "Warning: Supplied argument is not a valid MySQL result resource" Can anyone help me? Can you get random results this way if you want to use limit to put a certain number of results to a page? Here is my code:

<?php

$row_max=1;
if (!$profiles_shown)
{
$profiles_shown=0;

}
else
{


$old_profiles=$profiles_shown;

}
//Set variables for database access:
(blah blah)

if (!$total_result)
{

$Querya = "SELECT pusername, bus, loc, pos, his, go, rel, ac from PROFILES where (Professioncat = '$Professionals')";
$Resulta= mysql_db_query ($DBName, $Querya, $Link);
$total_result=mysql_num_rows($Resulta);

}

$proval=$Professionals;


$Query = "SELECT pusername, bus, loc, pos, his, go, rel, ac from PROFILES where (Professioncat = '$Professionals') ORDER BY RAND ( ) LIMIT $profiles_shown, $row_max";
$Result= mysql_db_query ($DBName, $Query, $Link);

while ($Row = mysql_fetch_array
($Result)) {

print( "<BR><BR>\n");
print("<TABLE BORDER=0 cellpadding=10 cellspacing=0 width=80% ALIGN=center>\n");
print( "<TR>\n");
print("<TD BGCOLOR=#3366ff VALIGN=top><FONT size=3 COLOR=#ffffff><B>USER:</B></FONT><FONT COLOR=black size=3><B>&nbsp; $Row[pusername]</B></FONT></TD>\n");
print("<TD BGCOLOR=#3366ff VALIGN=top><FONT size=3 COLOR=#ffffff><B> AC:</B></FONT><FONT COLOR=black size=3><B>&nbsp; $Row[ac]</B></FONT></TD>\n");

print ("</TR>\n");
print( "<TR>\n");
print("<TD BGCOLOR=#ddddff VALIGN=top><B>B:</B></TD>\n");
print("<TD BGCOLOR=#ddddff>$Row[bus] </TD>\n");
print ("</TR>\n");
print ("<TR>\n");
print("<TD BGCOLOR=#ddddff VALIGN=top><B>L:</B></TD>\n");
print("<TD BGCOLOR=#ddddff>$Row[loc] </TD>\n");
print ("</TR>\n");
print ("<TR>\n");
print("<TD BGCOLOR=#ddddff VALIGN=top><B>POS:</B></TD>\n");
print("<TD BGCOLOR=#ddddff>$Row[pos] </TD>\n");
print ("</TR>\n");
print ("<TR>\n");
print("<TD BGCOLOR=#ddddff VALIGN=top><B>HIS:</B></TD>\n");
print("<TD BGCOLOR=#ddddff>$Row[his] </TD>\n");
print ("</TR>\n");
print ("<TR>\n");
print("<TD BGCOLOR=#ddddff VALIGN=top><B> GO:</B></TD>\n");
print("<TD BGCOLOR=#ddddff>$Row[go] </TD>\n");
print ("</TR>\n");
print ("<TR>\n");
print("<TD BGCOLOR=#ddddff VALIGN=top><B>REL:</B><BR></TD>\n");
print("<TD BGCOLOR=#ddddff>$Row[rel] <BR></TD>\n");
print( "</TR>\n");

?>
<TR>
<TD BGCOLOR=#9999cc colspan="2" VALIGN=top><CENTER><A HREF=http://www.phpbuilder.com/board/archive/index.php/"email.php">
<B>EMAIL</B></A></CENTER></TD>
</TR>
<?php

$profiles_shown++;

print( "</TABLE>\n");

print( "<BR><BR>\n");
}



$profiles_shown=$profiles_shown-1;
if ((($profiles_shown+1) !=($row_max)) &&($profiles_shown!=($total_result-1)))
{
$profiles_on_this_page=$profiles_shown-$old_profiles;
$profiles_shown_prev=$profiles_shown- (($row_max+$profiles_on_this_page));
echo "<CENTER><B><a href=Handleindex.php?profiles_shown=$profiles_shown_prev&total_result=$total_result&Professionals=$proval>PREVIOUS</a></B>";
echo " &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp";
$profiles_shown=$profiles_shown+1;
echo "<B><a href=Handleindex.php?profiles_shown=$profiles_shown&total_result=$total_result&Professionals=$proval>NEXT</a></CENTER></B>";
$profiles_shown=$profiles_shown-1;
}

if (($profiles_shown==($total_result-1)) && (($profiles_shown+1) !=($row_max)))
{
$profiles_on_this_page=$profiles_shown-$old_profiles;
$profiles_shown_prev=$profiles_shown- (($row_max+$profiles_on_this_page));
echo "<CENTER><B><a href=Handleindex.php?profiles_shown=$profiles_shown_prev&total_result=$total_result&Professionals=$proval>PREVIOUS</a></B>";

}

if (($profiles_shown!=($total_result-1))&& (($profiles_shown+1) ==($row_max)))
{
$profiles_shown=$profiles_shown+1;
echo "<CENTER><B><a href=Handleindex.php?profiles_shown=$profiles_shown&total_result=$total_result&Professionals=$proval>NEXT</a></CENTER></B>";
}
echo "<BR><BR>";



mysql_close ($Link);
?>
 
Back
Top