-1

我有一个问题,我试图在这里为我的代码做一些分页,但我遇到了麻烦,无论我做什么,似乎我都无法让它工作,如果可能的话希望得到一些帮助,我尝试了类似于这个例子 1 但从来没有让它工作:/

示例 1:

$page = (int)$_GET['page'];
$perpage = 5;
if ($page<1) $page = 0;

我的代码

<?php

echo '<div id="block" border="1" width="200" style="float:center">';
$i = 0;
$getquery=mysql_query("SELECT * FROM dogs ORDER by ID LIMIT 30");
while($rows=mysql_fetch_assoc($getquery)){

    $id=$rows['id'];
    echo '<a href="mypage.com/index.php?img='. $id .'">
        <img src="/thumb/'. $id .'.jpg" width="125" height="125" alt="" />
    </a>';

    $i++;
    if($i == 10) {
        echo '<br />';
        echo '<br />';
        $i = 0;
    }
}
echo '</div>';

?>
4

3 回答 3

1

改变 :

mysql_query("SELECT * FROM dogs ORDER by ID LIMIT 30");

至 :

$start = $page * $perpage;
mysql_query("SELECT * FROM dogs ORDER by ID LIMIT $start, $perpage ");
于 2013-10-24T11:03:42.097 回答
0

It is because you use limit 30... It will always return the first 30 lines... You should use something like: LIMIT $page*$perpage,$perpage

This will tell mysql to start at X, so $page*$perpage, and select Y lines, $perpage.

于 2013-10-24T11:02:23.103 回答
0

您必须在 SQL 中添加OFFSET子句。要计算它,您只需执行

$offset=$pageNumber * $resultsPerPage 

$pageNumber基于 0 并且与子句$resultsPerPage中的值相同LIMIT

于 2013-10-24T11:03:56.660 回答