Jump to content

Archived

This topic is now archived and is closed to further replies.

Gruzin

Really need your help with pagination

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

Share this post


Link to post
Share on other sites
your looking at the best site right now mate http://www.phpfreaks.com/tutorial_cat/25/Page-Number--Pagination.php have fun :)

Share this post


Link to post
Share on other sites
sorry but... I've tryed both of them, unfortunately it doesn't work...

Share this post


Link to post
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...

Share this post


Link to post
Share on other sites
ok, thank you very much! You've just saved me :)

Share this post


Link to post
Share on other sites

×

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.