2011-12-26 5 views
1

В моем коде мне понравилось
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

Вы получаете строки из базы данных mysql? – NAVEED

+3

Общение с чатом не приветствуется здесь, пожалуйста, найдите время, чтобы набрать «пожалуйста» вместо «plz». Вы будете более успешны в * всех * ваших онлайн-сделках, если вы будете «PLZ» из своего словаря ... – meagar

+0

@NAVEED Да, я получаю строки из базы данных mysql. – User1988

ответ

1

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

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

Для примера:

SELECT * FROM `your_table` LIMIT 0, 10 

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

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

EDIT:

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

+1

что писать на событии onchage