SQL输出的分页

时间:2013-10-24 10:59:13

标签: php mysql

我遇到了问题,我试图在这里对我的代码进行一些分页,但是我遇到了麻烦,无论我做什么,似乎我都无法让它工作,如果可能的话,我会尝试一些帮助,我尝试了类似这个例子的东西1但从未使它工作:/

示例1:

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

mycode的

<?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>';

?>

3 个答案:

答案 0 :(得分: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 ");

答案 1 :(得分:0)

这是因为你使用限制30 ...它将始终返回前30行...你应该使用类似:LIMIT $ page * $ perpage,$ perpage

这将告诉mysql从X开始,所以$ page * $ perpage,并选择Y行,$ perpage。

答案 2 :(得分:0)

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

$offset=$pageNumber * $resultsPerPage 

$pageNumber基于0,$resultsPerPageLIMIT子句中的值相同