2012-07-12 4 views
0

나는 괜찮은 간단한 탐색 PHP 스크립트가 있습니다. 유일한 문제는 하단 대신 페이지 상단에 페이지 매김 링크를 표시하는 방법을 찾아야한다는 것입니다. 나에게 newb는 실제 탐색 변수가 선언되기 전에 페이지 매김 링크를 표시해야하므로 불가능한 것처럼 보입니다.실제 스크립트보다 페이지 상단의 페이지 매김 링크

이 작업을 수행 할 수 있습니까? 내가 PHP에서 아무것도 할 때 나는

<?php 
    //Calculate anything I need for the page to be displayed 

    //Build the html page and fill in variables where needed 
?> 

를 다음을 수행

<? 
$numrows = '600'; 
$rowsperpage = 20; 
$totalpages = ceil($numrows/$rowsperpage); 
if ($currentpage > $totalpages){ $currentpage = $totalpages; } 
if ($currentpage < 1){ $currentpage = 1; } 
$offset = ($currentpage - 1) * $rowsperpage; 

HERE I query the data from the table and basically fill in the page. 

Now starts the pagination links: 

$range = 3; 
if ($currentpage > 1) { 
    echo '<a href="'.$site_current.'/'.$slug.'/">First</a>'; 
} 
$prevpage = $currentpage - 1; 

echo '<a href="'.$site_current.'/'.$slug.'/'.$prevpage.'/">Previous</a>'; 

for ($x = ($currentpage - $range); $x < (($currentpage + $range) + 1); $x++) { 
    if (($x > 0) && ($x <= $totalpages)) {  
     if($x == $currentpage){ 
      echo '<span class="current">'.$x.'</span>'; 
     } else { 

      echo '<a href="'.$site_current.'/'.$slug.'/'.$x.'/">'.$x.'</a>'; 

     } 
    } 
} 

if ($currentpage != $totalpages){ 
    $nextpage = $currentpage + 1;  
    echo '<a href="'.$site_current.'/'.$slug.'/'.$nextpage.'/">Next</a>'; 
    echo '<a href="'.$site_current.'/'.$slug.'/'.$totalpages.'/">Last</a>'; 
} 
?> 
+2

로직에서 표시 할 내용을 구분하십시오. 아무 것도 울리기 전에 변수에 표시 할 내용을 결정하십시오. 그런 다음 필요한 모든 정보를 얻었 으면 가장 합리적인 순서로 결과를 표시하십시오. – MyStream

+1

왜'$ numrows'가 인용 되었습니까? 그것은 숫자입니다. 번호로 작업하십시오. 따옴표는 PHP를 사용할 때마다 PHP 캐스트를 정수로 만듭니다. –

+0

600 대신에 변수가 있습니다. Ty는 coments에 대한, 그냥 알아 냈어 :) 그냥 오프셋 아래의 매김 링크를 넣을 수 있습니다 다음 실제 MySQL 쿼리를 시작 – webmasters

답변

0

또한 템플릿에서 로직을 분리 유식 같은 프레임 워크를 조사 할 수 있습니다 : 여기

는 스크립트입니다 디자인. PHP는 실제로 자체적으로 템플릿 언어이지만 실제로는 멋지게 사용하는 것을 좋아합니다.

+0

타이, 당신 말이 맞아요, 그것은 작동합니다 ... 나는 $ offset 바로 아래의 페이지 매김 링크를 배치했습니다 = ($ currentpage - 1) * $ rowsperpage; 그런 다음 페이지가 매겨진 데이터를 표시하는 my mysql 행 foreach 루프를 수행하십시오. – webmasters