Как я могу добавить нумерацию страниц в свой код?Каков следующий шаг, чтобы эта нумерация работала? - PullRequest
1 голос
/ 26 декабря 2011

В моем коде у меня есть такой
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 Ответ

1 голос
/ 26 декабря 2011

Если вы получаете результат / строки из базы данных, вы можете получить выбранное количество строк из базы данных, используя LIMIT .

Предложение LIMIT может использоваться для ограниченияколичество строк, возвращаемых оператором SELECT

Например:

SELECT * FROM `your_table` LIMIT 0, 10

Таким образом, вы можете установить LIMIT в запросе SQL после отправки формы и выполнить циклрезультат для diplay.

В противном случае есть несколько PHP-классов / Учебников для разбивки на страницы:

РЕДАКТИРОВАТЬ:

После публикации вашего кода мы увидим, что вы жестко кодируете $index_limit = 10 в своем классе doPages.Вам также необходимо передать $index_limit в doPages класс.

...