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>");} ?> 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. 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.. 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"); 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 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
Archived
This topic is now archived and is closed to further replies.