dodgexxx Posted September 28, 2008 Share Posted September 28, 2008 Hi I'm a total newbie with this, but I'm trying to make a serch engine for my mp3 collection. I found myself a code and tried it out. It's almost working too. But I'm getting a message saying: Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /volume1/Web/tmp/search.php on line 48 Even though it's working pretty good, I don't know why this message means. So, if anyone would like to take a closer look at the code, here it is: <!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”> <html xmlns=“http://www.w3.org/1999/xhtml”> <head> <meta http-equiv=“Content-Type” content=“text/html; charset=utf-8” /> <title>Rogers Personal MP3 Search!</title> </head> <body> <h1 align="center">Rogers MP3 Search Engine with PHP/MYSQL</h1> <p align="center"> <a href="http://www.bjorbekk.net/mp3/search/" ><b>New Search</b></a> <p></p> </form> </body> </html> <?PHP function getmicrotime() { list($usec, $sec) = explode(" ", microtime()); return ((float)$usec + (float)$sec); } //initializing connection to the database $connection_string = dirname(__FILE__) . "/connectionstring.php"; require_once($connection_string); //selecting table mysql_select_db("mp3") or die ( 'Unable to select database.' ); //max number of results on the page $RESULTS_LIMIT=10; if(isset($_GET['search_term']) && isset($_GET['search_button'])) { $search_term = $_GET['search_term']; if(!isset($first_pos)) { $first_pos = "0"; } $start_search = getmicrotime(); //initializing MySQL Quary $sql_query = mysql_query("SELECT * FROM mp3data WHERE MATCH(Artist,Title,FileName) AGAINST('$search_term')"); //additional check. Insurance method to re-search the database again in case of too many matches (too many matches cause returning of 0 results) if($results = mysql_num_rows($sql_query) != 0) { $sql = "SELECT * FROM mp3data WHERE MATCH(Artist,Title,FileName) AGAINST('$search_term') LIMIT $first_pos, $RESULTS_LIMIT"; $sql_result_query = mysql_query($sql); } else { $sql = "SELECT * FROM mp3data WHERE (Artist LIKE '%".mysql_real_escape_string($search_term)."%' OR FileName LIKE '%".$search_term."%') "; $sql_query = mysql_query($sql); $results = mysql_num_rows($sql_query); $sql_result_query = mysql_query("SELECT * FROM mp3data WHERE (Artist LIKE '%".$search_term."%' OR FileName LIKE '%".$search_term."%') LIMIT $first_pos, $RESULTS_LIMIT "); } $stop_search = getmicrotime(); //calculating the search time $time_search = ($stop_search - $start_search); } ?> <?PHP if($results != 0) { ?> <!-- Displaying of the results --> <table border="0" cellspacing="2" cellpadding="2"> <tr> <td width="47%">Results for: <?PHP echo "<i><b><font color=#0000FF>".$search_term."</font></b></i> "; ?></td> <td width="53%" align="right" height="22">Results <b> <?PHP echo ($first_pos+1)." - "; if(($RESULTS_LIMIT + $first_pos) < $results) echo ($RESULTS_LIMIT + $first_pos); else echo $results ; ?> </b>out of <b><?PHP echo $results; ?> </b>for(<b><?PHP echo sprintf("%01.2f", $time_search); ?> </b>)seconds </td> </tr> <tr> <form action="" method="GET"> <td colspan="2" align="center"> <input name="search_term" type="text" value="<?PHP echo $search_term; ?>" size="40"> <input name="search_button" type="submit" value="Search"> </td> </form> </tr> <?PHP while($row = mysql_fetch_array($sql_result_query)) { ?> <tr align="left"> <td colspan="2"><?PHP echo $row['Artist']; ?> <tr align="left"> <td colspan="2"><?PHP echo $row['Title']; ?> <tr align="left"> <td colspan="2"><?PHP echo $row['FileName']; ?> <?PHP } ?> </table> <?PHP } //if nothing is found then displays a form and a message that there are nor results for the specified term elseif($sql_query) { ?> <table border="0" cellspacing="2" cellpadding="0"> <tr> <td align="center">No results for<?PHP echo "<i><b><font color=#000000>".$search_term."</font></b></i> "; ?></td> </tr> <tr> <form action="" method="GET"> <td colspan="2" align="center"> <input name="search_term" type="text" value="<?PHP echo $search_term; ?>"> <input name="search_button" type="submit" value="Search"> </td> </form> </tr> </table> <?PHP } ?> <table width="300" border="0" cellspacing="0" cellpadding="0"> <?php if (!isset($_GET['search_term'])) { ?> <tr> <form action="" method="GET"> <td colspan="2" align="center"> <input name="search_term" type="text" value="<?PHP echo $search_term; ?>"> <input name="search_button" type="submit" value="Search"> </td> </form> </tr> <?php } ?> <tr> <td align="center"> <?PHP //displaying the number of pages where the results are sittuated if($first_pos > 0) { $back=$first_pos-$RESULTS_LIMIT; if($back < 0) { $back = 0; } echo "<a href='search.php?search_term=".stripslashes($search_term)."&first_pos=$back&search_button=search'></a>"; } if($results>$RESULTS_LIMIT) { $sites=intval($results/$RESULTS_LIMIT); if($results%$RESULTS_LIMIT) { $sites++; } } for ($i=1;$i<=$sites;$i++) { $fwd=($i-1)*$RESULTS_LIMIT; if($fwd == $first_pos) { echo "<a href='search.php?search_term=".stripslashes($search_term)."&first_pos=$fwd&search_button=search'><b>$i</b></a> | "; } else { echo "<a href='search.php?search_term=".stripslashes($search_term)."&first_pos=$fwd&search_button=search'>$i</a> | "; } } if(isset($first_pos) && $first_pos < $results-$RESULTS_LIMIT) { $fwd=$first_pos+$RESULTS_LIMIT; echo "<a href='search.php?search_term=".stripslashes($search_term)."&first_pos=$fwd&search_button=search'> >></a>"; $fwd=$results-$RESULTS_LIMIT; } ?> </td> </tr> </table> Link to comment https://forums.phpfreaks.com/topic/126195-phpmysql-search-script/ Share on other sites More sharing options...
AV1611 Posted September 29, 2008 Share Posted September 29, 2008 Line 48: if($results = mysql_num_rows($sql_query) != 0) change to $results=mysql_num_rows($sql_query); if($results != 0) Link to comment https://forums.phpfreaks.com/topic/126195-phpmysql-search-script/#findComment-653124 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.