d3vilr3d Posted October 11, 2007 Share Posted October 11, 2007 Hi guys I'm trying to break a listing into pages with 10 listings per page. I have read through the pagination tutorial and is having difficulty implementing the codes. Please point me toward the correct direction. Here is the original listing code: <?PHP if (!defined("MC_KEY")) die("Security Error."); include_once('includes/database.php'); require_once('config.php'); if ($_REQUEST[action]=="showads") { echo "<div id=\"ads_search_form\">\n"; include('search_form.php'); echo "</div>\n"; echo "<div>\n"; if (isset($_REQUEST[regionid]) && isset($_REQUEST[subcategoryid])) { $url_params = "regionid=".intval($_REQUEST[regionid])."&subcategoryid=".intval($_REQUEST[subcategoryid]); } else { // SCRIPT TO BAIL OUT!!! //echo "<script></script>"; } $ads = $info->getAds($_REQUEST[regionid],$_REQUEST[subcategoryid]); echo "<table cellspacing=5>\n"; $cur_date = ""; $limit = 25; $query_count = "SELECT count(*) FROM ad"; $result_count = mysql_query($query_count); $totalrows = mysql_num_rows($result_count); if(empty($page)){ // Checks if the $page variable is empty (not set) $page = 1; // If it is empty, we're on page 1 } $limitvalue = $page * $limit - ($limit); $query = "SELECT * FROM ads LIMIT $limitvalue, $limit"; $result = mysql_query($query) or die("Error: " . mysql_error()); foreach ($ads as $adRecord) { $ad_url = "?action=display&adid=".$adRecord[id]."&$url_params"; if ($cur_date!=date("D M d",$adRecord[epoch_date])) { $cur_date = date("D M d",$adRecord[epoch_date]); /*echo "<tr><td colspan='3'> </td></tr>"; echo "<tr class='ad_date_separator'><td colspan='3'>".date("D M d",$adRecord[epoch_date])."</td></tr>";*/ } $price = $adRecord[price]; if (!preg_match("/[a-z]/i",$price)&&!preg_match("/\\$/",$price)) { $price = "$".$price; } $row_color = ($row_color!='#ffffdd') ? '#ffffdd' : '#ffffff'; echo "<tr style=\"background-color:$row_color;\">\n"; echo " <td>\n"; echo " <B><a href='$ad_url'>".$adRecord[title]."</a></B>\n"; if (strlen($adRecord[city])) { echo " <a href='$ad_url'>(".$adRecord[city].")</a>\n"; } if (strlen($adRecord[price])) { echo " <span class='adlist_price'>".substr($price,0,10)."</span>\n"; } if (intval($adRecord[num_pics])) { echo " <img src='images/picture.gif' border='0' style='vertical-align:middle'>\n"; } echo " <br>$adRecord[content]\n"; echo "<br><br>"; echo " </td>"; echo "</tr>"; } echo "</table>\n"; echo "</div>\n"; if($page != 1){ $pageprev = $page--; echo("<a href=\"$PHP_SELF&page=$pageprev\">PREV".$limit."</a> "); }else echo("PREV".$limit." "); $numofpages = $totalrows / $limit; for($i = 1; $i <= $numofpages; $i++){ if($i == $page){ echo($i." "); }else{ echo("<a href=\"$PHP_SELF&page=$i\">$i</a> "); } } if(($totalrows % $limit) != 0){ if($i == $page){ echo($i." "); }else{ echo("<a href=\"$PHP_SELF&page=$i\">$i</a> "); } } if(($totalrows - ($limit * $page)) > 0){ $pagenext = $page++; echo("<a href=\"$PHP_SELF?page=$pagenext\">NEXT".$limit."</a>"); }else{ echo("NEXT".$limit); } mysql_free_result($result); } ?> I tried the method from the tutorial to get counts, by using $query_count = sprintf("SELECT * FROM `ad` WHERE `sub_category_id` = '{$_REQUEST[subcategoryid]}' AND `region_id` = '{$_REQUEST[regionid]}'"); $result = mysql_query($query_count)or die(mysql_error()); $count = mysql_num_rows($result); $limit = 10; if(empty($page)){ $page = 1; } $limitvalue = $page * $limit - ($limit); but, in my original php the data is picked up by $ads = $info->getAds($_REQUEST[regionid],$_REQUEST[subcategoryid]); I dont know how to make a output limit with that, please help. Quote Link to comment https://forums.phpfreaks.com/topic/72841-pagination-problem/ Share on other sites More sharing options...
MasterACE14 Posted October 12, 2007 Share Posted October 12, 2007 where you have this in the links: <?php $PHP_SELF remove that and put in the full URL with the vpage at the end. note: with that tutorial, I have implemented it into my site as well, but the links will be stuffed up, like no matter what page you are on, the number '1' will never be a link, while the rest of the numbers will be links to the other pages. Also note the NEXT link and the PREV link do each others job, the NEXT button goes to the previous page, and the PREV button goes to the next page. Im still trying to fix it :-\ Regards ACE Quote Link to comment https://forums.phpfreaks.com/topic/72841-pagination-problem/#findComment-367531 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.