分页脚本最后一页

Pagination script last page

我按照教程创建了 php 脚本,但它有一个错误。它显示在上一页的最后一页信息中 - 这是因为 $perpage.如何只显示尚未显示的数据。

示例 - 如果我将 $perpage 设置为 3 并且我有 7 条记录(名为 1,2,3,4,5,6,7),第一页为 1,2,3,第二页为 4, 5,6 最后一页是5,6,7(我只想显示记录7)

$query = mysql_query("SELECT ID FROM clanek"); 
$count = mysql_num_rows($query);

$perpage = 3; // řádků na stránku
$pages_count  = ceil($count / $perpage); //celkem stránek zaokrohleno
$page = isset($_GET['page']) ? $_GET['page'] : 1;
$is_first = $page == 1; //první stránka
$is_last  = $page == $pages_count; 
$prev = max(1, $page - 1); 
$next = min($pages_count , $page + 1); /

$data = mysql_query("SELECT DATE_FORMAT(datum_pridani_c,'%d.%m.%Y %H:%i:%s')as datumcas,nazev,kratky_popis,ID FROM clanek ORDER BY datum_pridani_c DESC LIMIT ".($page - 1).", ".$perpage);  /

while ($zaznam = mysql_fetch_array($data)) {

//some info her
}

if($pages_count>0) {
if(!$is_first) { 
echo '<a class="predchozistranka" href="index.php?page='.$prev.'">Předchozí</a>';
}
echo '<span class="stranka">Stránka '.$page.' / '.$pages_count.'</span>';
if(!$is_last) { 
echo '<a class="dalsistranka" href="index.php?page='.$next.'">Další</a>';
}
}
$data = mysql_query("SELECT DATE_FORMAT(datum_pridani_c,'%d.%m.%Y %H:%i:%s')as datumcas,nazev,kratky_popis,ID FROM clanek ORDER BY datum_pridani_c DESC LIMIT ".($page - 1).", ".$perpage); 

自从我使用 MySQL 以来已经有一段时间了,但我刚刚启动了 Workbench,我看到 LIMIT 的语法是 LIMIT offset,rowcount。医生也是这么说的 http://dev.mysql.com/doc/refman/5.0/en/select.html

为了使您的查询正常工作,应该 ($page - 1)*$perpage, $perpage

而不是 ($page - 1), $perpage
$query = mysql_query("SELECT ID FROM clanek"); 
$count = mysql_num_rows($query);

无关紧要,但上面的代码对于获取总行数来说效率非常低。如果用SELECT count(id) FROM clanek

就更好了