2012-11-17 3 views
-2

Функция страницы на моем блоге не тянет его вес. При нажатии на кнопку «2» она переходит к третьей странице. При нажатии одной страницы загружается страница с двумя страницами. Я нашел эту функцию в Интернете где-то; это не мое.Страницы случайный беспорядок

function generate_pages($total,$current) 
{ 
    if($total > 1) 
    { 
     $total=intval($total); 

     $output='<div class="page"><b>Pages:</b> '; 
     $current_page= (false == isset($current)) ? 1 : $current; 
     for($page=1;$page<$total+1;$page++) 
     { 
      $lower=$current_page-3; 
      $upper=$current_page+3; 
      $special = ($page==$current_page) ? " class=\"current\"" : ""; 
      if(($page > $lower && $page < $upper) || $page < 2 || $page > ($total-1)) 
      { 
       if($last_done_page+1 != $page) $output.= '... '; 
       $output.='<b>[<a'.$special.' href="?pg='.$page.'">'.$page.'</a>] </b>'; 
       $last_done_page=$page; 
      } 
     } 
     $output.='</div><br/>'; 
     return $output; 
    } 
} 
+0

Да, это было действительно страшно ... – jtheman

+0

Как вы попытались это исправить, вы его отлаживали? Почему бы вам не написать лучшую функцию вместо того, чтобы полагаться на случайное дерьмо из интернетов? – markus

+1

Код на этот вопрос: [Как я могу улучшить этот алгоритм разбиения на страницы в PHP?] (Http://stackoverflow.com/questions/3744794/how-can-i-improve-this-php-pagination-algorithm) – sachleen

ответ

0

Я думаю, что эти изменения помогут вам:

function generate_pages($total,$current,$resultsPerPage) 
{ 
    if($total > 1) 
    { 
     $total=intval($total/$resultsPerPage); 

    if($total%$resultsPerPage>0) 
    { 
     $total=$total+1; 
    } 



     $output='<div class="page"><b>Pages:</b> '; 
     $current_page= (false == isset($current)) ? 1 : $current; 
     for($page=1;$page<$total+1;$page++) 
     { 
      $lower=$current_page-3; 
      $upper=$current_page+3; 
      $special = ($page==$current_page) ? " class=\"current\"" : ""; 
      if(($page > $lower && $page < $upper) || $page < 2 || $page > ($total-1)) 
      { 
       if($last_done_page+1 != $page) $output.= '... '; 
       $output.='<b>[<a'.$special.' href="?pg='.$page.'">'.$page.'</a>] </b>'; 
       $last_done_page=$resultsPerPage; 
      } 
     } 
     $output.='</div><br/>'; 
     return $output; 
    } 
} 

я добавил один дополнительный параметр $ resultsperPage .......

Смежные вопросы