Creating pagination for existing PHP script

Discussion in 'PHP' started by ryanrbftp, Jul 7, 2011.

  1. #1
    We currently have a page selection script in use, but at the moment it displays ALL pages in the category listing; 1,2,3,4...75. We only want the script to display say 5 pages and then move along as the users browses further through the pages.

    I'm still learning PHP so any pointers would be of great help. Our current code for the page links is as follows:

       /* Calculates how many pages exist. Which page one should be on, etc... */
        $downloadpagesint = ($totalselecteddownloads / $ns_dl_num_per_page);			
        $downloadpageremainder = ($totalselecteddownloads % $ns_dl_num_per_page);		
        if ($downloadpageremainder != 0) {					 
        	$downloadpages = ceil($downloadpagesint);				
        	if ($totalselecteddownloads < $ns_dl_num_per_page) {
        		$downloadpageremainder = 0;
        	}
        } else {
        	$downloadpages = $downloadpagesint;
        }
        /* Page Numbering */
        if ($downloadpages!=1 && $downloadpages!=0) {
    	if (($mod_title == 1) AND (file_exists("/themes/$ns_theme/$mod_title_directory/$module_name/selectpage.gif"))) {
    	echo "<br><br><img src=\"/themes/$ns_theme/$mod_title_directory/$module_name/selectpage.gif\" border=\"0\" title=\""._SELECTPAGE."\"><br><br>";
    	} else {
    			echo "<div class=\"pagenumbers\">";
            echo "<br><br><b>"._SELECTPAGE."</b><br><br>";
    	}
    		
    				   	$seotitlecat = friendlyURL($cattitle);
    
         	$prev=$min-$ns_dl_num_per_page;
         	if ($prev>=0) {
    		if ($prev == 0){
    				 $navurl = "/downloads/".$cid."/".$seotitlecat."/";
    	    	    echo "<a href=\"$navurl\">";
        	    	echo "<img src=\"/themes/$ns_theme/images/previous.gif\" border=\"0\" title=\""._PREVIOUS."\" alt=\"\"></a>&nbsp;&nbsp;&nbsp;&nbsp;";
    					  }
    		else 		  {
    						 $navurl = "/downloads/".$cid."/".$seotitlecat."/".$prev."/";
    	    	    echo "<a href=\"$navurl\">";
        	    	echo "<img src=\"/themes/$ns_theme/images/previous.gif\" border=\"0\" title=\""._PREVIOUS."\"></a>&nbsp;&nbsp;&nbsp;&nbsp;";
    					  }
    
      	}	    	
        	$counter = 1;
     	$currentpage = ($max / $ns_dl_num_per_page);
    	$maxpages == 5;
           	while ($counter<=$downloadpages) {
          	    $cpage = $counter;
          	    $mintemp = ($ns_dl_num_per_page * $counter) - $ns_dl_num_per_page;
          	    if ($counter == $currentpage) {
    		echo "&nbsp;&nbsp;<b>$counter</b>&nbsp;&nbsp;\n";
    	    } else {
    		if ($mintemp == 0){
    		 $navurl = "/downloads/".$cid."/".$seotitlecat."/";
    			echo "&nbsp;<a href=\"$navurl\" title=\"Page $counter\">$counter</a>&nbsp;&nbsp;\n";
    					  }
    		else 		  {
    				 $navurl = "/downloads/".$cid."/".$seotitlecat."/".$mintemp."/";
    			echo "&nbsp;<a href=\"$navurl\" title=\"Page $counter\">$counter</a>&nbsp;&nbsp;\n";
    			
    					  }
    	    }
           	    $counter++;
           	}      	
         	$next=$min+$ns_dl_num_per_page;
         	if ($x>=$ns_dl_num_per_page) {
    								 $navurl = "/downloads/".$cid."/".$seotitlecat."/".$max."/";
       		echo "&nbsp;&nbsp;&nbsp;&nbsp;<a href=\"$navurl\">";    		
    		echo "<img src=\"/themes/$ns_theme/images/next.gif\" border=\"0\" title=\""._NEXT."\" alt=\"\"></a>";     	
    		}
    		echo "</div>";
        }
    	
    Code (markup):
    What would we need to change/include to only show say 7 pages (2 either side of the current page)?

    Any ideas, help or suggestions would be greatly appreciated.

    Thank you in advance.
     
    ryanrbftp, Jul 7, 2011 IP