分页脚本最后一页


Pagination script last page

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

示例 - 如果我将$perpage设置为 3,并且我有 7 条记录(名为 1,2,3,4,5,6,7),则第一页上为 1,2,3,第二页为 4,5,6,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 以来已经有一段时间了,但我刚刚启动了我的工作台,我看到 LIMIT 的语法是 LIMIT 偏移量,行计数。医生也这么说 http://dev.mysql.com/doc/refman/5.0/en/select.html

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

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

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