我按照教程创建了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>';
}
}
答案 0 :(得分: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);
我使用MySQL已经有一段时间了,但我刚刚启动了Workbench,我发现LIMIT的语法是LIMIT offset,rowcount。该文件也说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