Showing Posts From

Pagination in bootstap and php

Pagination code using php and mysql

Pagination code using php and mysql

Hi Geeks, We have gone through some user requests for pagination code for php mysql project.So we have created a simple class where you can easily create pagination for any grid or listing. following are the simple steps for making a pagination system in php. Step 1: Create a class file ‘Paginator.class.php’ in your project with following code snippet _conn = $conn; $this->_query = $query; $rs= $this->_conn->query( $this->_query ); $this->_total = $rs->num_rows; } public function getData( $limit = 10, $page = 1 ) { $this->_limit = $limit; $this->_page = $page; if ( $this->_limit == 'all' ) { $query = $this->_query; } else { $offset=( ( $this->_page - 1 ) * $this->_limit ); $query = $this->_query . " LIMIT " . $offset . ", $this->_limit"; } $rs = $this->_conn->query( $query ); $results=array(); while ( $row = $rs->fetch_assoc() ) { $results[] = $row; } $result = new stdClass(); $result->page = $this->_page; $result->limit = $this->_limit; $result->total = $this->_total; $result->data = $results; return $result; } public function append_existing_query_string($qstring) { if(isset($_GET)) { foreach($_GET as $k=>$v) { $qstring.="&".$k."=".$v; } } return $qstring; } public function createLinks( $links, $list_class ) { if ( $this->_limit == 'all' ) { return ''; } $last = ceil( $this->_total / $this->_limit ); $start = ( ( $this->_page - $links ) > 0 ) ? $this->_page - $links : 1; $end = ( ( $this->_page + $links ) _page + $links : $last; $html = ''; $class = ( $this->_page == 1 ) ? "disabled" : ""; // $qstring='?limit=' . $this->_limit . '&page=' . ( $this->_page - 1 ); $qstring=$this->append_existing_query_string($qstring); // $html .= '&laquo;'; if ( $start > 1 ) { // $qstring='?limit=' . $this->_limit . '&page=1'; $qstring=$this->append_existing_query_string($qstring); // $html .= '1'; $html .= '...'; } for ( $i = $start ; $i _page == $i ) ? "active" : ""; // $qstring='?limit=' . $this->_limit . '&page=' . $i; $qstring=$this->append_existing_query_string($qstring); // $html .= '' . $i . ''; } if ( $end ...'; // $qstring='?limit=' . $this->_limit . '&page=' . $last; $qstring=$this->append_existing_query_string($qstring); // $html .= '' . $last . ''; } $class = ( $this->_page == $last ) ? "disabled" : ""; $qstring='?limit=' . $this->_limit . '&page=' . ( $this->_page + 1 ); $qstring=$this->append_existing_query_string($qstring); $html .= '&raquo;'; $html .= 'Total records : '.$this->_total.''; return $html; }} ?> Step 2: Include the paging class before extracting data to showStep 3: Now extract the data for any page as following getData( $limit, $page ); ?> Step 4 : Now we are ready with data. So just showing the data and links as followingShow the data first and after it showing the pagination links as following: <th>Customer Id</th> <th>Customer Name</th> <th>Customer Email</th> <th>Customer Address</th> </tr> </thead> <tbody> <?php if(isset($results) && count( $results->data ) > 0){ for( $i = 0; $i < count( $results->data ); $i++ ) { ?> <tr> <td><?php echo $results->data[$i]['id']; ?></td> <td><?php echo $results->data[$i]['name']; ?></td> <td><?php echo $results->data[$i]['email']; ?></td> <td><?php echo $results->data[$i]['address']; ?></td> </tr> <?php } } ?> </tbody> </table>Show the paging links after the datacreateLinks( $links, $class="pagination"); ?>