2012-11-14 2 views
-4

내 PHP 페이지에서 페이지 매김을하고 싶습니다. mysql 데이터베이스에서 결과를 가져와 테이블에 표시하고 있습니다. 누구든지 자바 스크립트 또는 jquery를 사용하지 않고 어떻게 할 수 있도록 도와주세요.mysql 데이터를 사용하여 PHP에서 페이지 매김

+0

확인 http://www.phpasystep.com/phptu/29.html npaper http://papermashup.com/easy-php-pagination/ Google 검색에 대한 자세한 내용 https://www.google.co .in/search? q = php + pagonation & ie = utf-8 & oe = utf-8 & aq = t & rls = org.mozilla : en-US : 공식 및 클라이언트 = firefox-a & 채널 = fflb # hl = ko & client = firefox-a & hs = aiB & rls = org.mozilla : EN-US : 공식 및 채널 = fflb &은 = 1 & Q = PHP + 매김 철자 & SA = X & EI = OSWjUNDsK8jJrAfE - oDwBw 및 VED = 0CB8QvwUoAA & BAV = on.2, or.r_gc.r_pw.r_qf 및 FP = c6b13d771f58730e & BPCL = 38626820 & BIW = 1467 & BIH = 706 스택 오버플로 –

+2

에 오신 것을 환영합니다.! [당신은 무엇을 시도 했습니까?] (http://whathaveyoutried.com) –

+1

이 질문은 대답이 필요하지 않을 것입니다. 1. 당신은 havent/show what을 시도하고 2.there는 google에서 매우 훌륭한 결과를냅니다. –

답변

0

페이지 당 10 개의 결과가 필요하지만 스크롤 할 수 있습니다.

mysql 쿼리에 LIMIT 0,10을 추가 할 수 있습니다.

그런 다음 표의 아래쪽에 링크를 추가하여 다음 결과 세트로 이동하십시오. (table.php?page=2과 같은 것)

이 페이지에서이 쿼리를 LIMIT 10,20으로 변경하십시오.

시작하기에 충분한 정보 여야합니다.

+0

대단히 감사합니다 ... 나는 쿼리에서 한계를 사용하여 쉽게 페이지 매김을 얻을 수 있다고 생각합니다. –

+0

가장 쉬운 방법이라고 생각합니다 ...이 답변으로 도움이 되었다면, 승인 된 것으로 표시하십시오. :) – Shadow

1

DB_Pager를 사용할 수없는 경우, 예 10-2 및 10-3에 나와있는 pc_print_link() 및 pc_indexed_links ( ) 함수를 사용하여 올바른 형식의 링크를 생성 할 수 있습니다.

예 10-2.

function pc_print_link($inactive,$text,$offset='') { 
    if ($inactive) { 
    printf('<font color="#666666">%s</font>',$text); 
    } else { 
    printf('<a 
    href="%s?offset=%d">%s</a>',$_SERVER['PHP_SELF'],$offset,$text); 
    } 
    } 

function pc_indexed_links($total,$offset,$per_page) { 
$separator =' | '; 
// print "<<Prev" link 
pc_print_link($offset == 1, '&lt;&lt;Prev', $offset -$per_page); 
// print all groupings except last one 
for ($start = 1, $end = $per_page; 
$end < $total; 
$start += $per_page, $end += $per_page) { 
print $separator; 
pc_print_link($offset == $start, "$start-$end", $start); 
} 
/* print the last grouping -* at this point, $start points to the element at the   beginning 
* of the la 

st grouping 
    */ 
    /* the text should only contain a range if there's more than 
    * one element on the last page. For example, the last grouping 
    * of 11 elements with 5 per page should just say "11", not "11-11" 
    */ 
    $end = ($total > $start) ? "-$total" : ''; 
    print $separator; 
    pc_print_link($offset == $start, "$start$end", $start); 
    // print "Next>>" link 
    print $separator; 
    pc_print_link($offset == $start, 'Next&gt;&gt;',$offset + $per_page); 
    } 

,이 기능을 사용 DB :: modifyLimitQuery()를 사용하여 데이터의 정확한 부분 집합을 추출하고 그것을 밖으로 인쇄합니다. pc_indexed_links()가 인덱스 링크를 표시하는 전화 :

$offset = intval($_REQUEST['offset']); 
    if (! $offset) { $offset = 1; } 
    $per_page = 5; 
    $total = $dbh->getOne('SELECT COUNT(*)FROM zodiac'); 
    $sql = $dbh->modifyLimitQuery('SELECT * FROM zodiac ORDER BY id', 
    $offset -1,$per_page); 
    $ar = $dbh->getAll($sql); 
    foreach ($ar as $k => $v) { 
    print "$v->sign, $v->symbol ($v->id)<br>"; 
    } 
    pc_indexed_links($total,$offset,$per_page); 
    printf("<br>(Displaying %d -%d of %d)",$offset,$offset+$k,$total); 

을 데이터베이스에 연결 한 후 적절한 값 offsethas 확인 $를 확인해야합니다. $ offset은 표시되어야하는 결과 집합의 시작 레코드입니다. 시작시 결과 집합의 시작 부분에서 $ offsets는 1이되어야합니다. $ per_page 변수는 각 페이지에 표시 할 레코드 수가 각각 개이고 $ total은 전체 결과 집합의 레코드 총 수입니다. 이 예에서는 모든 조디악 레코드가 표시되므로 $ total은 전체 테이블의 모든 행 수인 으로 설정됩니다. 올바른 순서로 정보를 검색하는 SQL 쿼리는 다음과 같습니다. SELECT * 조디악 ORDER BY id 검색 할 행을 제한하려면 modifyLimitQuery()를 사용하십시오. 첫 번째 행이 데이터베이스의 0이 아닌 1이므로 0 오프셋 -1에서 시작하여 $ per_pagerows를 검색하려고합니다. modifyLimitQuery() 메서드는 올바른 데이터베이스 관련 논리를 에 적용하여 쿼리에서 반환하는 행을 제한합니다. 관련 행은 $ dbh-> getAll ($ sql)에 의해 검색되고 각 행의 정보는 으로 표시됩니다. 행 다음에 pc_indexed_links()가 탐색 링크를 제공합니다.