这个分页课有什么问题?

时间:2012-08-02 12:19:23

标签: php pagination

我正在寻找一个简单的分页脚本并找到一个here,这似乎工作正常。

然而,当我点击“2”时,如第2页所示,它只显示已经存在的那些下面的第2页的记录。所以基本上如果我点击第214页它仍然显示一页上的所有记录。

我对PHP不是很有经验,所以我无法弄清楚paginator.class.php有什么问题,希望有人可以。

这是应该进行分页的页面上的代码:

else {
$query = "SELECT COUNT(*) FROM products";
$result = mysql_query($query) or die(mysql_error());
$num_rows = mysql_fetch_row($result);
$pages = new Paginator;  
$pages->items_total = $num_rows[0];  
$pages->mid_range = 9;  
$pages->paginate();  

$query1 = "SELECT serial, name, description, price, picture FROM products WHERE serial != '' ORDER BY serial ASC $pages->limit";
$result = mysql_query($query1) or die(mysql_error());
while ($row = mysql_fetch_array($result))
{
echo '<div style="margin-bottom:10px;display:inline-block;background-color:#E3E3E3;width:190px;height:200px;"><a href="'.$_SERVER['PHP_SELF'].'?serial='.$row['serial'].'"><img style="padding-top:10px;padding-left:25px;width:150px;height:150px;" src="'.htmlspecialchars($row['picture']).'"></a><br><div align="center"><b>'.htmlspecialchars($row['name']).'</b><br><h6>&euro;'.htmlspecialchars($row['price']).'</h6></div></div>&nbsp;';
};
echo '&nbsp;';
echo '<br><br><div style="margin-left:330px;">';
echo $pages->display_pages();
echo '</div>';
}

paginator.class.php可以在我刚提到的网站上找到。

1 个答案:

答案 0 :(得分:0)

问题出在您的查询中:

"SELECT serial, name, description, price, picture FROM products WHERE serial != '' ORDER BY serial ASC $pages->limit"

您需要确定$ pages-&gt; limit的值是多少。在我看来,不是计算应该在每个页面上显示多少条记录(为了参数而让我们说10条),然后确定你所在的页面并设置LIMIT条件。

应该设置的内容是这样的:

LIMIT 30, 10

那是第4页 - 它显示30-40的记录,而不是我怀疑它正在做的,这是

LIMIT 40

该行最多只显示40条记录,而不是关闭窗口的下限。

仅供参考manual中的MySQL SELECT语法。