0

我正在尝试运行我创建的分页代码,但我无法弄清楚如何将所有项目从表格中分离到页面(分页)。

以下是代码。

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 新手,对此有任何想法,非常感谢。

4

2 回答 2

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 需要一个长度,而不是一个位置。

于 2013-04-21T20:27:01.763 回答
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;
于 2013-04-21T20:29:55.023 回答