Below are step by step guide so that you can easly add this pagination in your site.
Step 1
create a database and add the following table along with data dump.CREATE TABLE IF NOT EXISTS `articles` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `title` varchar(100) NOT NULL, `date` date NOT NULL, `description` text NOT NULL, `status` tinyint(4) NOT NULL DEFAULT '1', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; INSERT INTO `articles` (`id`, `title`, `date`, `description`, `status`) VALUES (1, 'What is php?', '2013-06-08', 'PHP is a server-side scripting language designed for web development but also used as a general-purpose programming language.', 1), (2, 'What is ASP?', '2013-06-08', 'An ASP file can contain text, HTML tags and scripts. Scripts in an ASP file are executed on the server. What you should already know', 1), (3, 'what is javascript', '2013-06-08', 'JavaScript is a popular programming language that''s built into all the major web browsers and used to make web pages interactive', 1), (4, 'what is ajax?', '2013-06-08', 'Ajax is a group of interrelated web development techniques used on the client-side to create asynchronous web applications', 1), (8, 'what is Jquery?', '2013-06-09', 'The purpose of jQuery is to make it much easier to use JavaScript on your website. What You Should Already Know', 1);
Step 2
Add the Jquery library in head section with following java script code.Step 3
Small css to control the listing and give some style to pagination. You can modify or user your own..container{ margin:0px auto; width:600px; background:#ccc; } /* Pagination =========================================================*/ .pagination { margin:25px 0 5px 0; overflow:hidden; margin:0; list-style:none; } .pagination li { margin:5px 5px 15px 0; float:left; } .pagination li a{ padding:6px 12px; color:#595959; display:block;background-color: #CEDDE0; text-decoration:none; cursor:pointer;} .pagination .current{ color:#228f9c; } .pagination li a.prev, .pagination li a.next{ color:#fff; background:#41b1c5; cursor:pointer; } .pagination li a.prev:hover, .pagination li a.next:hover{ background:#228f9c !important; text-decoration:none; cursor:pointer; }
Step 4
Fetch the data from database when the page is load.include("pages.php"); $max_records=2; $page = "Select * from articles where status=1 order by id asc"; $sql = "Select * from articles where status=1 "; $rstotal=mysql_query($sql) ; $total_records=mysql_num_rows($rstotal); $current_page=(isset($_GET["p"]) && intval($_GET["p"])<>0)?intval($_GET["p"])-1:0; $start=($current_page*$max_records); if($start=='') $start=0; $end=0; if($total_records >= 1) { $total_pages=ceil($total_records/$max_records); if($start < $total_records) { if($start + $max_records < $total_records) $end = $start + $max_records; else $end = $total_records; } $page = "$page LIMIT $start,$max_records"; } <div class="container"> <ul class="data"> <?php if($total_records>0){ $page_rs=mysql_query($page); $page_count=mysql_num_rows($page_rs); while($page_row=mysql_fetch_assoc($page_rs)){?> <li> <h3><?php echo $page_row['title'];?></h3> <div class="desc"> <?php echo $page_row['description'];?> </div> </li> <?php } }else {?> <div align="center"> <?php echo 'no data to show';?> </div> <?php } ?> </ul> <?php if($total_records>$max_records){ ?> <ul class="pagination"> <?php echo paginate($current_page,$total_pages); ?> </ul> <?php }?> </div>
Step 5
Shows the data from database when ajax request is send.<?php header("Content-type:application/json"); if(isset($_POST,$_POST['p']) && $_SERVER['REQUEST_METHOD']=='POST'){ include("pages.php"); $max_records=2; $page = "Select * from articles where status=1 order by id asc"; $sql = "Select * from articles where status=1 "; $rstotal=mysql_query($sql) ; $total_records=mysql_num_rows($rstotal); $current_page=(isset($_POST["p"]) && intval($_POST["p"])<>0)?intval($_POST["p"])-1:0; $start=($current_page*$max_records); if($start=='') $start=0; $end=0; if($total_records >= 1) { $total_pages=ceil($total_records/$max_records); if($start < $total_records) { if($start + $max_records < $total_records) $end = $start + $max_records; else $end = $total_records; } $page = "$page LIMIT $start,$max_records"; } $html=''; $pages=''; if($total_records>0){ $page_rs=mysql_query($page); $page_count=mysql_num_rows($page_rs); while($page_row=mysql_fetch_assoc($page_rs)){ $html.='<li> <h3>'. $page_row['title'].'</h3> <div class="desc"> '. $page_row['description'].' </div> </li>'; } if($total_records>0){ $pages.=paginate($current_page,$total_pages); } echo json_encode(array('status'=>true,'html'=>"$html",'pages'=>"$pages"));exit; }else { $html.=' <div align="center"> '. 'no data to show </div>'; echo json_encode(array('status'=>true,'html'=>"$html"));exit; } }else{ echo json_encode(array('status'=>false,'msg'=>"Sorry some unexpected error occur. please try again."));exit; } ?>
Step 6 Final step
pagination function create the file name pages.php and add this script.
function paginate($current = 1, $total) { global $max_records; $current++; $perpage=3;// per page link if(!empty($max_records)) $limit=$max_records; if(!$current) $current = 1; $last = ceil($total); $previous=$current - 1; $next=$current + 1; $pagination=''; if($total > 1) { if( $current >1) { $pagination.="<li ><a rel='1' class='prev pages' >First</a></li>"; $pagination .= "<li ><a rel=".$previous." class='prev pages'>Previous</a></li>"; } else { } if ($current >= $perpage) { $pages = $current - floor($perpage/2); if ($last > $current + floor($perpage/2)) if($perpage%2==0) $loop = $current + floor($perpage/2)-1; else $loop = $current + floor($perpage/2); else if ($current <= $last && $current > $last - ($perpage-1)) { $pages = $last - ($perpage-1); $loop = $last; } else { $loop = $last; } } else { $pages = 1; if ($last > $perpage) $loop = $perpage; else $loop = $last; } for($i = $pages; $i <= $loop; $i++) { $class=($current==$i)?'current':''; $pagination.="<li ><a class='".$class." pages' rel='".$i."'>".$i."</a></li>"; } if( $total != $current ) { $pagination .= "<li ><a rel=".$next." class='prev pages'>Next</a></li>"; $pagination.="<li ><a rel='".$total."' class='prev pages' >Last</a></li>"; } else { } } return $pagination; }
View Demo Download