如何在代码中添加分页?让这个分页工作的下一步是什么?

时间:2011-12-26 05:41:14

标签: php class gridview pagination paginate

在我的代码中我喜欢这个enter image description here如何进行分页............
////////这是我的分页课///////

    class simple_pagination
{
    function check_integer($which) {
        if(isset($_REQUEST[$which])){
            if (intval($_REQUEST[$which])>0) {
                //check the paging variable was set or not, 
                //if yes then return its number:
                //for example: ?page=5, then it will return 5 (integer)
                return intval($_REQUEST[$which]);
            } else {
                return false;
            }
        }
        return false;
    }//end of check_integer()

    function get_current_page() {
        if(($var=$this->check_integer('page'))) {
            //return value of 'page', in support to above method
            return $var;
        } else {
            //return 1, if it wasnt set before, page=1
            return 1;
        }
    }//end of method get_current_page()

    function doPages($page_size, $thepage, $query_string, $total=0) {
     //echo $query_string;exit;
        //per page count
        $index_limit = 10;

        //set the query string to blank, then later attach it with $query_string
        $query='';

        if(strlen($query_string)>0){
            $query = "&".$query_string;
        }

        //get the current page number example: 3, 4 etc: see above method description
        $current = $this->get_current_page();

        $total_pages=ceil($total/$page_size);
        //echo $total;exit;
        $start=max($current-intval($index_limit/2), 1);
        $end=$start+$index_limit-1;

        echo '<div class="paging">';
        if($current==1) {
            echo '<span class="prn">  First &lt;&lt;</span>&nbsp;';
        } else {
            $i = $current-1;
              echo " <a href='$thepage?currentpage=1'>First </a>&nbsp; ";

            echo '<a href="'.$thepage.'?page='.$i.$query.'" class="prn" rel="nofollow" title="go to page '.$i.'">&lt;&lt; </a>&nbsp;';
            echo '<span class="prn">...</span>&nbsp;';
        }

        if($start > 1) {
            $i = 1;
            echo '<a href="'.$thepage.'?page='.$i.$query.'" title="go to page '.$i.'">'.$i.'</a>&nbsp;';
        }

        for ($i = $start; $i <= $end && $i <= $total_pages; $i++){
            if($i==$current) {
                echo '<span>'.$i.'</span>&nbsp;';
            } else {
                echo '<a href="'.$thepage.'?page='.$i.$query.'" title="go to page '.$i.'">'.$i.'</a>&nbsp;';
            }
        }

        if($total_pages > $end){
            $i = $total_pages;
            echo '<a href="'.$thepage.'?page='.$i.$query.'" title="go to page '.$i.'">'.$i.'</a>&nbsp;';
        }

        if($current < $total_pages) {
            $i = $current+1;

            echo '<span class="prn">...</span>&nbsp;';

            echo '<a href="'.$thepage.'?page='.$i.$query.'" class="prn" rel="nofollow" title="go to page '.$i.'">  &gt;&gt; </a>&nbsp;';
            echo " <a href='$thepage?page=$total_pages'>Last </a>&nbsp; ";

        } else {
            echo '<span class="prn"> Last &gt;&gt;</span>&nbsp;';
        }

        //if nothing passed to method or zero, then dont print result, else print the total count below:
        if ($total != 0){
            //prints the total result count just below the paging
            echo '<p id="total_count">(total '.$total.' records)</p></div>';
        }

    }//end of method doPages()

////// wifi.php /////////

     <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">Show
            <select name="results_page" id= "results_page" onChange="this.form.submit();">        
                <option value="5" NO >5</option>
                <option value="10" NO >10</option>
                <option value="20" SELECTED >20</option>
                <option value="50" NO >50</option>
            </select>       
                 results per page
        </form>
 <?php    
         $pagination    = new simple_pagination();
            $offset     = 5;
            $array_old      = $objquote->viewdata();
            $total_records  = count($array_old);

          $pagination->doPages($offset,$_SERVER['PHP_SELF'], '', $total_records); ?>

我写的如上。让这个分页工作的下一步是什么? //////图片///// enter image description here

1 个答案:

答案 0 :(得分:1)

如果要从数据库获取结果/行,可以使用 LIMIT 从数据库中选择行数。

  

LIMIT子句可用于约束返回的行数   通过SELECT语句

例如:

SELECT * FROM `your_table` LIMIT 0, 10

因此,您可以在表单提交后在SQL查询中设置LIMIT,并将结果循环到diplay。

否则,有一些用于分页的PHP类/教程:

修改

在发布您的相关代码后,我们可以看到您在$index_limit = 10课程中对doPages进行了严格编码。您还需要将$index_limit传递给doPages类。