Jump to content


Photo

Really need your help with pagination


  • Please log in to reply
4 replies to this topic

#1 Gruzin

Gruzin
  • Members
  • PipPipPip
  • Advanced Member
  • 448 posts
  • LocationGeorgia

Posted 24 August 2006 - 01:02 PM

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
I don't need your script, I'll try to write it myself

#2 shocker-z

shocker-z
  • Members
  • PipPipPip
  • Advanced Member
  • 864 posts
  • LocationNottingham

Posted 24 August 2006 - 01:26 PM

your looking at the best site right now mate http://www.phpfreaks...-Pagination.php have fun :)
www: www.ukchat.ws | irc: irc.ukchat.ws chan: #blufudge

#3 Gruzin

Gruzin
  • Members
  • PipPipPip
  • Advanced Member
  • 448 posts
  • LocationGeorgia

Posted 24 August 2006 - 01:29 PM

sorry but... I've tryed both of them, unfortunately it doesn't work...
I don't need your script, I'll try to write it myself

#4 blunt

blunt
  • New Members
  • Pip
  • Newbie
  • 4 posts
  • LocationCape Town, S.Africa

Posted 24 August 2006 - 01:54 PM

Hi,

I do my own pagination its really quite easy.

// 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";

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...

#5 Gruzin

Gruzin
  • Members
  • PipPipPip
  • Advanced Member
  • 448 posts
  • LocationGeorgia

Posted 24 August 2006 - 03:33 PM

ok, thank you very much! You've just saved me :)
I don't need your script, I'll try to write it myself




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users