PHP Developer

Saturday, 27 February 2016

Custom Pagination Code For Wordpress, PHP with MySql

Custom Pagination Code For Wordpress, PHP with MySql


Pagination in php with custom query


<?php
/**
 * Template Name: Downloded Files Page
 *
 * @package WordPress
 * @subpackage Twenty_Fourteen
 * @since Twenty Fourteen 1.0
 */


get_header(); ?>
<?php
function paginate($reload, $page, $tpages) {
    $adjacents = 2;
    $prevlabel = "&lsaquo; Prev";
    $nextlabel = "Next &rsaquo;";
    $out = "";
    // previous
    if ($page == 1) {
        $out.= "<span>" . $prevlabel . "</span>\n";
    } elseif ($page == 2) {
        $out.= "<li><a  href=\"" . $reload . "\">" . $prevlabel . "</a>\n</li>";
    } else {
        $out.= "<li><a  href=\"" . $reload . "&amp;pageno=" . ($page - 1) . "\">" . $prevlabel . "</a>\n</li>";
    }
 
    $pmin = ($page > $adjacents) ? ($page - $adjacents) : 1;
    $pmax = ($page < ($tpages - $adjacents)) ? ($page + $adjacents) : $tpages;
    for ($i = $pmin; $i <= $pmax; $i++) {
        if ($i == $page) {
            $out.= "<li  class=\"active\"><a href=''>" . $i . "</a></li>\n";
        } elseif ($i == 1) {
            $out.= "<li><a  href=\"" . $reload . "\">" . $i . "</a>\n</li>";
        } else {
            $out.= "<li><a  href=\"" . $reload . "&amp;pageno=" . $i . "\">" . $i . "</a>\n</li>";
        }
    }
   
    if ($page < ($tpages - $adjacents)) {
        $out.= "<li><a style='font-size:11px' href=\"" . $reload . "&amp;pageno=" . $tpages . "\">" . $tpages . "</a>\n</li>";
    }
    // next
    if ($page < $tpages) {
        $out.= "<li><a  href=\"" . $reload . "&amp;pageno=" . ($page + 1) . "\">" . $nextlabel . "</a>\n</li>";
    } else {
        $out.= "<span style='font-size:11px'>" . $nextlabel . "</span>\n";
    }
    $out.= "";
    return $out;
}

$per_page = 2;         // number of results to show per page
$result = mysql_query("SELECT * FROM wp_uploads");
$total_results = mysql_num_rows($result);
$total_pages = ceil($total_results / $per_page);//total pages we going to have

//-------------if page is setcheck------------------//
if (isset($_GET['pageno'])) {
    $show_page = $_GET['pageno'];             //it will telles the current page
    if ($show_page > 0 && $show_page <= $total_pages) {
        $start = ($show_page - 1) * $per_page;
        $end = $start + $per_page;
    } else {
        // error - show first set of results
        $start = 0;             
        $end = $per_page;
    }
} else {
    // if page isn't set, show first set of results
    $start = 0;
    $end = $per_page;
}
// display pagination
$page = intval($_GET['pageno']);

$tpages=$total_pages;
if ($page <= 0)
    $page = 1;
?>

<div id="main-content" class="main-content">
    <div class="container">
        <div id="primary" class="content-area">
            <div id="content" class="site-content" role="main">
                <div class="row">
                    <h2 class="upload_front_head">Uploaded File List</h2>
                    <div class="first_div" style="text-align:center;">
                        <div class="div_heading">
                            <!--<div class="heading_div">S.No.</div>-->
                            <div class="heading_div">Ttile</div>
                            <div class="heading_div">File Name</div>
                        </div>
                        <?php
                        $n= 0;
                        // loop through results of database query, displaying them in the table
                        for ($i = $start; $i < $end; $i++) {
                            $n = $n + 1;
                            // make sure that PHP doesn't try to show results that don't exist
                            if ($i == $total_results) {
                                break;
                            }
                         
                            // echo out the contents of each row into a table
                           
                            echo "<div class='content_row'>";
                                //echo "<div class='content_data'><strong>".$n.".<strong></div>";
                               
                                echo "<div class='content_data'>".mysql_result($result, $i, 'title')."</div>";
                               
                                echo "<div class='content_data'>".mysql_result($result, $i, 'origional_file')."</div>";
                               
                            echo "</div>";
                        } 
                        ?>

                    </div>
                   
                    <div class="pagination_section">
                        <?php
                        $reload = get_page_link() . "?tpages=" . $tpages;
                        echo '<div class="pagination"><ul>';
                        if ($total_pages > 1) {
                            echo paginate($reload, $show_page, $total_pages);
                        }
                        echo "</ul></div>";
                        // pagination
                        ?>
                    </div>
                </div>
            </div><!-- #content -->
        </div><!-- #primary -->
    </div>
</div><!-- #main-content -->
<style>
.pagination_section {
  float: left;
  margin-top: 10px;
  text-align: center;
  width: 100%;
}
.pagination {
  height: 40px;
  margin: 20px 0;
}
.pagination ul {
  border-radius: 3px;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
  display: inline-block;
  margin-bottom: 0;
  margin-left: 0;
}
.pagination ul li {
  display: inline;
}
.pagination li:first-child a, .pagination li:first-child span, .pagination li a {
  border-left-width: 1px;
  border-radius: 3px 0 0 3px;
  color: #3281ae;
  font-weight: 800;
}
.pagination a, .pagination span {
  -moz-border-bottom-colors: none;
  -moz-border-left-colors: none;
  -moz-border-right-colors: none;
  -moz-border-top-colors: none;
  background-color: #fff;
  border-color: #ddd;
  border-image: none;
  border-style: solid;
  border-width: 1px 1px 1px 0;
  float: left;
  line-height: 38px;
  padding: 0 14px;
  text-decoration: none;
}
.pagination .active a, .pagination .active span {
  color: #999;
  cursor: default;
}
.pagination a:hover, .pagination .active a, .pagination .active span {
  background-color: #f5f5f5;
}
</style>

<?php
get_footer();
?>

No comments:

Post a Comment