$per_page = 3;
$page_query = mysql_query("SELECT COUNT(*) FROM penjualan");
$pages = ceil(mysql_result($page_query, 0) / $per_page);
$page = (isset($_GET['pagenum'])) ? (int)$_GET['pagenum'] : $pages;
$start = ($page - 1) * $per_page;
$query = mysql_query("SELECT * FROM penjualan ORDER BY nonota ASC LIMIT $start, $per_page");
while($r=mysql_fetch_array($query)){
echo "
<tr>
<td><a href='?page=penjualan¬a=$r[nonota]'>$r[nonota]</a></td>
<td>$r[tanggal]</td>
<td>$r[total]</td>
<td><a href='?page=penjualan¬a=$r[nonota]'>Cetak Nota</a></td>
</tr>";
}
if($pages >= 1 && $page <= $pages){
for($halaman=1; $halaman<=$pages; $halaman++){
echo ($halaman == $page) ? '<a class="halaman-aktif">'.$halaman. '</a>' : '<a href="?page=penjualan&pagenum='.$halaman.'"> '.$halaman.'</a>'; }
}
你好我有一个....数据列表…使用LIMIT子句每页显示3个。
我想当我去这个地址?page=penjualan¬a=5
的分页是在第2页..
另一个例子,当我访问这个地址page=penjualan¬a=8
时,分页在第3页。
因为$per_page
项只有3..
请帮帮我……非常感谢
...
$pages = ceil(mysql_result($page_query, 0) / $per_page);
if (isset($_GET['nota'])) {
$page = intval(((int) $_GET['nota'] - 1) / $per_page) + 1;
} else {
$page = isset($_GET['pagenum']) ? (int) $_GET['pagenum'] : $pages;
}
$start = ($page - 1) * $per_page;
...
NOTE1:仅当db中的nonota
字段具有所有连续的数字时才有效(如果您删除任何行,则需要重新计数所有较高的数字向下)。
NOTE2: mysql_*
函数已折旧。是时候将代码重构为mysqli_*
或PDO,特别注意准备好的语句,以防止SQL注入攻击。