Pagination

PHP programming forum. Ask questions or help people concerning PHP code. Don't understand a function? Need help implementing a class? Don't understand a class? Here is where to ask. Remember to do your homework!

Moderator: General Moderators

Post Reply
icepirates
Forum Newbie
Posts: 6
Joined: Mon Aug 18, 2008 11:11 am

Pagination

Post by icepirates »

Hello,

I have a problem I can seem to figure out...My php-code is displaying all the entries in my database on one page, and I only want 4 entries displayed on each page, then the pagination numbers PAGE: [1], [2] etc...

My script already displays the pagination numbers and links the numbers...its just the code is displaying all the db entries on one page instead just 4 per page..

Any help is appreciated

Code: Select all

<?php
$con = mysql_connect("","","") or die('Could not connect: ' . mysql_error());
mysql_select_db("legion", $con);
$result = mysql_query("SELECT * FROM elections");
 
while($row = mysql_fetch_assoc($result)){
 
echo "ID: ".$row['id']." - ".$row['articlename']." --   ".$row['date']."<br/><br/> ".$row['description']."<br/><br/>";
 
 
} // end if
 
ini_set ("display_errors", "1");
error_reporting(E_ALL);
 
// find out how many rows are in the table    
$sql = "SELECT COUNT(*) FROM elections";   
$result = mysql_query($sql) or die(mysql_error());   
$r = mysql_fetch_row($result);   
$numrows = $r[0];   
  
// number of rows to show per page   
$rowsperpage = 1;   
// find out total pages   
$totalpages = ceil($numrows / $rowsperpage);   
  
// get the current page or set a default   
if (isset($_GET['currentpage']) && is_numeric($_GET['currentpage'])) {   
   // cast var as int   
   $currentpage = (int) $_GET['currentpage'];   
} else {   
   // default page num   
   $currentpage = 1;   
} // end if   
  
// if current page is greater than total pages...   
if ($currentpage > $totalpages) {   
   // set current page to last page   
   $currentpage = $totalpages;   
} // end if   
// if current page is less than first page...   
if ($currentpage < 1) {   
   // set current page to first page   
   $currentpage = 1;   
} // end if   
  
// the offset of the list, based on current page    
$offset = ($currentpage - 1) * $rowsperpage;   
  
// get the info from the db    
$sql = "SELECT id, number FROM elections LIMIT $offset, $rowsperpage";   
$result = mysql_query($sql) or die(mysql_error());   
  
// while there are rows to be fetched...   
while ($list = mysql_fetch_assoc($result)) {   
   // echo data   
   echo $list['id'] . " : " . $list['number'] . "<br />";   
} // end while   
  
/******  build the pagination links ******/  
// range of num links to show   
$range = 3;   
  
// if not on page 1, don't show back links   
if ($currentpage > 1) {   
   // show << link to go back to page 1   
   echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=1'><<</a> ";   
   // get previous page num   
   $prevpage = $currentpage - 1;   
   // show < link to go back to 1 page   
   echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$prevpage'><</a> ";   
} // end if    
  
// loop to show links to range of pages around current page   
for ($x = ($currentpage - $range); $x < (($currentpage + $range) + 1); $x++) {   
   // if it's a valid page number...   
   if (($x > 0) && ($x <= $totalpages)) {   
      // if we're on current page...   
      if ($x == $currentpage) {   
         // 'highlight' it but don't make a link   
         echo " [<b>$x</b>] ";   
      // if not current page...   
      } else {   
         // make it a link   
     echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$x'>$x</a> ";   
      } // end else   
   } // end if    
} // end for   
            
// if not on last page, show forward and last page links       
if ($currentpage != $totalpages) {   
   // get next page   
   $nextpage = $currentpage + 1;   
    // echo forward link for next page    
   echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$nextpage'>></a> ";   
   // echo forward link for lastpage   
   echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$totalpages'>>></a> ";   
} // end if   
/****** end build pagination links ******/  
?>
User avatar
Christopher
Site Administrator
Posts: 13596
Joined: Wed Aug 25, 2004 7:54 pm
Location: New York, NY, US

Re: Pagination

Post by Christopher »

If you echo $sql what is the actual query?
(#10850)
Post Reply