2013-04-21 6 views
0

작성한 페이지 매김 코드를 실행하려고하는데, 테이블의 모든 항목을 페이지 (페이지 매김)로 분리하는 방법을 알아낼 수 없습니다.PHP로 페이지 매기기

다음은 코드입니다.

public function getCatItemsByPage($cat, $page) { 
    $query = "SELECT 
       id 
       FROM 
       categories 
       WHERE 
       name = '$cat'"; 


    $result = mysql_query($query) or die(mysql_error()); 

    $id = mysql_result($result, 0, "id"); 


if($page == 1){ 
    $limit_start = 0; 
    $limit_stop = 52; 
}else if($page == 2){ 
    $limit_start = ($page - 1) * 52; 
    $limit_stop = $limit_start + 52; 
}else{ 
    $limit_start = $page * 52; 
    $limit_stop = $limit_start + 52; 
} 

    $output_videos_query = "SELECT 
       * 
       FROM 
       videos 
       WHERE 
       cate_id=$id 
       ORDER BY 
       created_at 
       DESC LIMIT 
       $limit_start, $limit_stop"; 

    $output_videos_result = mysql_query($output_videos_query) or die(mysql_error()); 

    return $output_videos_result; 

} 

필자는 카테고리 ($ cat)와 페이지 번호 ($ page)를 전달합니다. 그리고 문제는 $ limit_start와 $ limit_stop을 페이지 단위로 계산하는 방법입니다. 나는 지난 시간 동안 비디오를 얻는 방법을 찾으려고했지만 일부 페이지는 일부 비디오를 얻지 못하거나 일부 페이지는 많은 비디오를 얻습니다.

저는 PHP에 대한 새로운 아이디어를 얻었으므로 정말 고맙게 생각합니다.

+0

시작 = Items_per_page *이 페이지 정지 = 시작 + 페이지와 Items_per_page 을 그래서 페이지 1에서 0 에서 시작 u'r 오프셋은 다음과 같습니다. 0 * 52 = 52 페이지 2 = 1 * 52 = 52 페이지 3 = 2 * 52 = 104 – DarkBee

+0

간단한 PHP 페이지 매김 스크립트 : http://allitstuff.com/php-mysql-pagination-script-download –

답변

2
if($page == 1){ 
    $limit_start = 0; 
    $limit_stop = 52; 
}else if($page == 2){ 
    $limit_start = ($page - 1) * 52; 
    $limit_stop = $limit_start + 52; 
}else{ 
    $limit_start = $page * 52; 
    $limit_stop = $limit_start + 52; 
} 

이 조건은 어떻게해야합니까? 간단히 매번 :

$limit_start = ($page - 1) * 52; // 0 when 1, 52 when 2, 104 when 3 etc. 
$limit_stop = 52; 

그리고 작동해야합니다.

$limit_stop은 MySQL의 LIMIT가 위치가 아닌 길이를 기대하므로 상수 값이어야합니다.

+0

이것은 실제로 작동합니다. 나는 수풀 주위에 때리고 있었다. 고맙습니다! – Isuru

1

이를 대체 할 수

if($page == 1){ 
    $limit_start = 0; 
    $limit_stop = 52; 
}else if($page == 2){ 
    $limit_start = ($page - 1) * 52; 
    $limit_stop = $limit_start + 52; 
}else{ 
    $limit_start = $page * 52; 
    $limit_stop = $limit_start + 52; 
} 

을 훨씬 간단 함께 :

$limit_start = ($page - 1) * 52; 
$limit_stop = 52; 
+0

축소 된 정보가 포함 된 좋은 사본 붙여 넣기 ... – bwoebi

+0

올바른 대답이 하나 있는데, 물론 '사본'처럼 보일 것입니다 ... –

+0

미안합니다. 죄송합니다. 당신의 대답이 같은 스타일 이었기 때문에 저는 지금까지 생각하지 않았습니다. – bwoebi