我正在寻找一个简单的分页脚本并找到一个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>€'.htmlspecialchars($row['price']).'</h6></div></div> ';
};
echo ' ';
echo '<br><br><div style="margin-left:330px;">';
echo $pages->display_pages();
echo '</div>';
}
paginator.class.php
可以在我刚提到的网站上找到。
答案 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
语法。