Jump to content

Really need your help with pagination


Gruzin

Recommended Posts

hi guys, I really need a simple pagination script to dispaly 10 results of mysql table. I've been searching for that kind of tutorials for a week! I've found many of them but actually they doesn't work... hope someone can help here:( thanks for your time.

G
Link to comment
Share on other sites

Hi,

I do my own pagination its really quite easy.

[code]
// im not including much error checking this is just the basics - assuming mysql queries return results etc.
// fetch the total amount of results to work out number of pages - you could store the total pages in
// a session variable but im not going to bring sessions into this example

$sql = 'select col1, col2, col3 from table';
$res = mysql_query($sql);

$total_results = mysql_num_rows($res);
$total_per_page = 10;

// work out the number of pages, use ceil incase its not an equal divide
// need an extra page to show remaining results
$number_of_pages = ceil($total_results / $total_per_page);

// check if we have the get variable "page" indicating what page we are on
// otherwise just set it to page 1
if (isset($_GET['page']) && is_numeric($_GET['page']) && $_GET['page'] <= $number_of_pages)
    $page = $_GET['page'];
else
    $page = 1;

// construct the page links
$pagelinks = 'Page(s): ';
for ($x = 1; $x <= $number_of_pages; $x++) {
    if ($x == $page) $pagelinks .= '<b>'.$x.'</b>&nbsp;';
    else $pagelinks .= '<a href="'.$_SERVER['PHP_SELF'].'?page='.$x.'">'.$x.'</a>&nbsp;';
}
if ($page > 1) $previouslink = '<a href="'.$_SERVER['PHP_SELF'].'?page='.($page-1).'">&laquo; Previous</a>';
else $previouslink = '';

if ($page < $number_of_pages) $nextlink = '<a href="'.$_SERVER['PHP_SELF'].'?page='.($page+1).'">Next &raquo;</a>';
else $nextlink = '';

// find the starting record number
$start_record = (($total_per_page * $page) - $total_per_page);

// now we modify our original sql statement to return only the results we are displaying
$sql .= ' limit '.$start_record.', '.$total_per_page;

// re-execute
$res = mysql_query($sql);
while ($row = mysql_fetch_object($res)) {
  echo '<div id="result">'.$row->col1.' - '.$row->col2.' - '.$row->col3.'</div>'."\n";
}

echo '<div id="pageNav">'.$previouslink;
if ($nextlink != '') echo ' - ';
echo $nextlink.'<br/>'.$pagelinks.'</div>'."\n";
[/code]

I wrote this out of my head now so there may be a syntax error or two but thats how I do my simple pagination...
Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.