Jax2 Posted February 11, 2008 Share Posted February 11, 2008 Hello everyone, I am trying to display a list of games that I have stored in my database. The database only consists of 4 simple fields: ID - The game ID #, incrimental IMG - A link to the img file for the game LINK - A link to the game file itself DESC - A description of the game The code I am using (Will paste below) results in an error: Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /mounted-storage/home7/sub002/sc14077-ZZHR/onlythebestgames.com/holiday/index3.php on line 49 I have tried using the same code (altered a bit of course) that I used on a previous website that was working fine, and got the same error on the same function (mysql_num_rows). Here is the new code I am using, can someone PLEASE point out what is causing this error and how I can fix it? I have outlined the problem line (line 49) in *********'s <? // Set Script Variables $DB_Host="FOOO"; $DB_Name="FOOO"; $DB_User="FOOO"; $DB_Pass="FOOO"; $query="holidays"; // Open MySQL Connection $Connection=mysql_connect($DB_Host, $DB_User, $DB_Pass); if (!($limit)){ $limit = 10;} // Default results per-page. if (!($page)){ $page = 0;} // Default page value. $numresults = mysql_query("SELECT * FROM OTBG WHERE category LIKE '%". $query ."%'"); // the query. ******************************************************************** This is line 49 that is giving me trouble: $numrows = mysql_num_rows($numresults); // Number of rows returned from above query. ********************************************************************* if ($numrows == 0){ echo("No results found matching your query - $query"); // bah, modify the "Not Found" error for your needs. exit();} $pages = intval($numrows/$limit); // Number of results pages. // $pages now contains int of pages, unless there is a remainder from division. if ($numrows % $limit) { $pages++;} // has remainder so add one page $current = ($page/$limit) + 1; // Current page number. if (($pages < 1) || ($pages == 0)) { $total = 1;} // If $pages is less than one or equal to 0, total pages is 1. else { $total = $pages;} // Else total pages is $pages value. $first = $page + 1; // The first result. if (!((($page + $limit) / $limit) >= $pages) && $pages != 1) { $last = $page + $limit;} //If not last results page, last result equals $page plus $limit. else{ $last = $numrows;} // If last results page, last result equals total number of results. //escape from PHP mode. ?> <html> <head> <title>Search Results for <?=$query?></title> </head> <body> <center><h2>Search Results for <?=$query?></h2></center> <table width="100%" border="0"> <tr> <td width="50%" align="left"> Results <b><?=$first?></b> - <b><?=$last?></b> of <b><?=$numrows?></b> </td> <td width="50%" align="right"> Page <b><?=$current?></b> of <b><?=$total?></b> </td> </tr> <tr> <td colspan="2" align="right"> </td> </tr> <tr> <td colspan="2" align="right"> Results per-page: <a href="<?=$PHP_SELF?>?query=<?=$query?>&page=<?=$page?>&limit=5">5</a> | <a href="<?=$PHP_SELF?>?query=<?=$query?>&page=<?=$page?>&limit=10">10</a> | <a href="<?=$PHP_SELF?>?query=<?=$query?>&page=<?=$page?>&limit=20">20</a> | <a href="<?=$PHP_SELF?>?query=<?=$query?>&page=<?=$page?>&limit=50">50</a> </td> </tr> </table> <? // Now we can display results. $results = mysql_query("SELECT * FROM OTBG WHERE category LIKE '%". $query ."%' ORDER BY id ASC LIMIT $page, $limit"); while ($data = mysql_fetch_array($results)) { ?> <table width="100%" id="snowline"> <tr> <td> <?php print ' '.$img .' '; ?> </td> <td> <?php print ' '.$desc .' '; ?> </td> </tr> <tr> <td> <?php print ' '.$link .' '; ?> </td> </tr> </table> <?php } ?> <p align="center"> <? if ($page != 0) { // Don't show back link if current page is first page. $back_page = $page - $limit; echo("<a href=\"$PHP_SELF?query=$query&page=$back_page&limit=$limit\">back</a> \n");} for ($i=1; $i <= $pages; $i++) // loop through each page and give link to it. { $ppage = $limit*($i - 1); if ($ppage == $page){ echo("<b>$i</b>\n");} // If current page don't give link, just text. else{ echo("<a href=\"$PHP_SELF?query=$query&page=$ppage&limit=$limit\">$i</a> \n");} } if (!((($page+$limit) / $limit) >= $pages) && $pages != 1) { // If last page don't give next link. $next_page = $page + $limit; echo(" <a href=\"$PHP_SELF?query=$query&page=$next_page&limit=$limit\">next</a>");} ?> Quote Link to comment https://forums.phpfreaks.com/topic/90575-need-help-with-pagination-please-php-mysql-error/ Share on other sites More sharing options...
phpSensei Posted February 11, 2008 Share Posted February 11, 2008 try $numresults = mysql_query("SELECT * FROM OTBG WHERE category LIKE '". $query ."%'") or die(mysql_error()); // the query. Quote Link to comment https://forums.phpfreaks.com/topic/90575-need-help-with-pagination-please-php-mysql-error/#findComment-464409 Share on other sites More sharing options...
Jax2 Posted February 11, 2008 Author Share Posted February 11, 2008 Odd, I am getting : NO DATABASE SELECTED when I used that code.. Quote Link to comment https://forums.phpfreaks.com/topic/90575-need-help-with-pagination-please-php-mysql-error/#findComment-464428 Share on other sites More sharing options...
phpSensei Posted February 11, 2008 Share Posted February 11, 2008 you need to select the db after you use mysql_connect($host,$user,$pass); mysql_select_db("database_name"); Quote Link to comment https://forums.phpfreaks.com/topic/90575-need-help-with-pagination-please-php-mysql-error/#findComment-464429 Share on other sites More sharing options...
Jax2 Posted February 12, 2008 Author Share Posted February 12, 2008 Ok have done that, and I put an error check after line 65, which reads: $SQL_Result=mysql_db_query($DB_Name, $SQL) or die(mysql_error()); and now I get this error: Unknown column 'name' in 'order clause' when I run the page. **EDIT*** Ahh, never mind, I figured it out, I was trying to sort by "name" instead of "id" and there is no "name" column. Thank you for the help, it's working now Quote Link to comment https://forums.phpfreaks.com/topic/90575-need-help-with-pagination-please-php-mysql-error/#findComment-464437 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.