2012-02-06 4 views
0

은 내가 300 행 (데이터) 각 페이지는 처음 10 페이지 다음 다음 다음 클릭 여기에 다음 10 페이지를 표시해야 할 10 개 개의 레코드를 포함해야하는 것은 내 코드입니다 :PHP에서 어떻게 페이징을 설정합니까?

<?php 


$eu = ($start - 0); 
$limit = 10; 
$this1 = $eu + $limit; 
$back = $eu - $limit; 
$next = $eu + $limit; 


if ($nume > $limit) 
{ 
    echo'<div class="pagination right">'; 
    if ($back >= 0) 
    { 
     echo"<a href='$page_name?start=$back&o" . $_SESSION['clicked'] . "&p=$desc'>&laquo;</a>"; 
    } 

    $i = 0; 
    $l = 1; 
    for ($i = 0; $i < $nume; $i = $i + $limit) 
    { 
     if ($i <> $eu) 
     { 
      echo"<a href='$page_name?start=$i&o=" . $_SESSION['clicked'] . "&p=$desc'>$l</a>"; 
     } 
     else 
     { 
      echo "<a class='active'>$l</a>"; 
     } 
     $l = $l + 1; 
    } 

    if ($this1 < $nume) 
    { 
     echo "<a href='$page_name?start=$next&o=" . $_SESSION['clicked'] . "&p=$desc'>&raquo;</a>"; 
    } 

    echo '</div>'; 
} 
echo '</div></div>'; 

?> 

그때 나는이 http://app.ologie.us/app/admin/Screen.png

같은 응답을 얻을 것이다

아무도 PHP에서 효과적인 페이징을 안내 할 수 있습니까?

답변

1

다음은 기본 페이지 매김에 대한 자습서입니다. 팀처럼 이렇게

http://www.phpfreaks.com/tutorial/basic-pagination

+1

외부 웹 사이트에 연결하는 것이 좋지 않을 경우 가능한 경우 특정 답변을 제공해보십시오. – Zar

+0

그래서 매우 상세한 답변에 대한 링크를 제공하는 대신 1/8 자로 동일한 답변을 넣으려고합니다. 내가 투표 한 것을 싫어한다면 내가 한 일에 아무런 문제가 없다는 것을 알았지 만, 나는 그가 물었던 것을 어떻게하는지 배우는 데 필요한 자원을 그에게 주었다. – thenetimp

+0

아무 문제가 없지만 적어도 나에게 묻는다면 링크로 더 짧은 요약을 선호 할 것이다. 투표를하지 않아도되고, 내 생각을 썼다. – Zar

0

모든 클라이언트 측에서 jQuery 용 DataTables 플러그인을 사용합니다. 이 플러그인은 또한 정렬 및 검색과 같은 더 많은 옵션을 제공합니다. 당신이 매우 큰 테이블이있는 경우

http://datatables.net/

이 아마 생각, 좋은 생각이 아니다.

1

, 나에 따르면,이 작업을 수행하기 위해 주로 나쁜 방법입니다 말했다. 필요할 때 필요한 데이터를 읽습니다. 배열에 최소 - 최대 인덱스를 사용하면됩니다. 최대 인덱스 - 최소 사이의 데이터를

$min = $page * 10; //Page is the current page 
$max = $min + 10; 

그럼 그냥 루프 : 은 페이지 당 10 개 개의 레코드를 표시 할 고려하십시오. 당신이 MySQL의에서 데이터를 수집하는 경우

for($i = $min; $i < $max; $i++) { 
    //Echo your data like normal 
} 

, 당신은 최대 LIMIT 볼 수도 있습니다.

1

$limit 당신의 페이지 크기이고 다른 요청 변수 $page 추가하는 경우 - 사용자가 요청한 검색 결과 페이지를 나타내는를 - 당신이

$start = ($page-1)*$limit; 
for($i=$start;$i < $start + $limit;$i=$i+1) { 
    ... 
} 

이 결과를 "페이지"를 반복하는 데 사용할 수 있습니다.

물론 결과보기의 수준에서 페이징을 처리하는 것은 의미가 없습니다. 쿼리에서 얻은 결과의 수를 제한하려고합니다.

또한 PHP 프레임 워크를 사용하여 요청하는 방식으로 코딩하는 것이 좋습니다. 응용 프로그램을 유지 보수하기가 어려울 수 있습니다.

+0

안녕하세요, 코드로 확인하고 있지만 작동하지 않습니다. 명확하게 설명 할 수 있습니까 –

+0

제 질문 편집 –

관련 문제