課程
/后端開發
/PHP
/PHP+MySQL分頁原理實現
$pageoffset = ($showPage-1)/2;??
如果$showPage等于2的時候,頁碼會從0.5開始
2019-02-20
源自:PHP+MySQL分頁原理實現 4-3
正在回答
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="css/style.css">
</head>
<body>
<?php
include "conn.php";
$page = isset($_GET['p']) ? $_GET['p'] : '';
$page_size = 10;
$page_from = ($page-1) * $page_size;
$sql = "SELECT * FROM message LIMIT $page_from, $page_size";
$res = $conn->query($sql);
?>
<table class="one" border="1">
<tr>
<td>id</td><td>用戶</td><td>內容</td><td>時間</td><td>操作</td>
</tr>
<?php while($row = $res->fetch_assoc()){ ?>
<td><?php echo $row['id']; ?></td>
<td><?php echo $row['username']; ?></td>
<td><?php echo $row['mes']; ?></td>
<td><?php echo $row['mestime']; ?></td>
<td><a href="#">修改</a> | <a href="#">刪除</a></td>
<?php } ?>
</table>
<br /><br />
<div class="page">
$page_banner = "";
$sql = "SELECT * FROM message";
$total_records = $res->num_rows;
$total_pages = ceil($total_records / $page_size);
$start = $page-5;
$end = $page+4;
if($page < 6){
$start = 1;
$end = 10;
}
if($page > $total_pages-4){
$start = $total_pages-9;
$end = $total_pages;
if($total_pages < 10){
if($page > 1){
$page_banner = "<a href='page.php?p=1'>首頁</a>";
$page_banner .= "<a href='".$_SERVER['PHP_SELF']."?p=".($page-1)."'>上一頁</a>";
for($i=$start; $i<=$end; $i++){
if($page == $i){
$page_banner .= "<span class='current'>{$i}</span>";
}else{
$page_banner .= "<a href='page.php?p=".$i."'>".$i."</a>";
if($page < $total_pages){
$page_banner .= "<a href='".$_SERVER['PHP_SELF']."?p=".($page+1)."'>下一頁</a>";
$page_banner .= "<a href='page.php?p=$total_pages'>尾頁</a>";
echo $page_banner;
echo "共".$total_pages."頁";
</div>
</body>
</html>
聽的也有點蒙,他這個好像是根據每一頁顯示的5個頁數計算的。你可以根據$showpage的值來重新計算一下$pageoffset的值。我寫了個分頁,可以參考一下
<!DOCTYPE?html><html><head> <title></title> <meta?charset="utf-8"> <link?rel="stylesheet"?type="text/css"?href="css/style.css"></head><body> <?php include?"conn.php"; $page?=?isset($_GET['p'])???$_GET['p']?:?''; $page_size?=?10; $page_from?=?($page-1)?*?$page_size; $sql?=?"SELECT?*?FROM?message?LIMIT?$page_from,?$page_size"; $res?=?$conn->query($sql); ?> <table?class="one"?border="1"> <tr> <td>id</td><td>用戶</td><td>內容</td><td>時間</td><td>操作</td> </tr> <?php?while($row?=?$res->fetch_assoc()){??> <tr> <td><?php?echo?$row['id'];??></td> <td><?php?echo?$row['username'];??></td> <td><?php?echo?$row['mes'];??></td> <td><?php?echo?$row['mestime'];??></td> <td><a?href="#">修改</a>?|?<a?href="#">刪除</a></td> </tr> <?php?}??> </table> <br?/><br?/> <div?class="page"> <?php $page_banner?=?""; $sql?=?"SELECT?*?FROM?message"; $res?=?$conn->query($sql); $total_records?=?$res->num_rows; $total_pages?=?ceil($total_records?/?$page_size); $start?=?$page-5; $end?=?$page+4; if($page?<?6){ $start?=?1; $end?=?10; } if($page?>?$total_pages-4){ $start?=?$total_pages-9; $end?=?$total_pages; } if($total_pages?<?10){ $start?=?1; $end?=?$total_pages; } if($page?>?1){ $page_banner?=?"<a?href='page.php?p=1'>首頁</a>"; $page_banner?.=?"<a?href='".$_SERVER['PHP_SELF']."?p=".($page-1)."'>上一頁</a>"; } for($i=$start;?$i<=$end;?$i++){ if($page?==?$i){ $page_banner?.=?"<span?class='current'>{$i}</span>"; }else{ $page_banner?.=?"<a?href='page.php?p=".$i."'>".$i."</a>"; } } if($page?<?$total_pages){ $page_banner?.=?"<a?href='".$_SERVER['PHP_SELF']."?p=".($page+1)."'>下一頁</a>"; $page_banner?.=?"<a?href='page.php?p=$total_pages'>尾頁</a>"; } echo?$page_banner; echo?"共".$total_pages."頁"; ?> </div></body></html>
舉報
引導大家完成一個PHP+MySQL分頁功能,由簡入繁的剖析原理
1 回答$pageoffset =($showpage -1)/2 計算偏移量時,有時不是整數
4 回答老師,我覺得這里有bug了
4 回答計算總頁數,跪求大神指教
1 回答這段代碼到底那里有錯呢。
1 回答這個是沒有之前頁面的代碼嗎?那我那個p需要自己寫出來?
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2019-06-21
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="css/style.css">
</head>
<body>
<?php
include "conn.php";
$page = isset($_GET['p']) ? $_GET['p'] : '';
$page_size = 10;
$page_from = ($page-1) * $page_size;
$sql = "SELECT * FROM message LIMIT $page_from, $page_size";
$res = $conn->query($sql);
?>
<table class="one" border="1">
<tr>
<td>id</td><td>用戶</td><td>內容</td><td>時間</td><td>操作</td>
</tr>
<?php while($row = $res->fetch_assoc()){ ?>
<tr>
<td><?php echo $row['id']; ?></td>
<td><?php echo $row['username']; ?></td>
<td><?php echo $row['mes']; ?></td>
<td><?php echo $row['mestime']; ?></td>
<td><a href="#">修改</a> | <a href="#">刪除</a></td>
</tr>
<?php } ?>
</table>
<br /><br />
<div class="page">
<?php
$page_banner = "";
$sql = "SELECT * FROM message";
$res = $conn->query($sql);
$total_records = $res->num_rows;
$total_pages = ceil($total_records / $page_size);
$start = $page-5;
$end = $page+4;
if($page < 6){
$start = 1;
$end = 10;
}
if($page > $total_pages-4){
$start = $total_pages-9;
$end = $total_pages;
}
if($total_pages < 10){
$start = 1;
$end = $total_pages;
}
if($page > 1){
$page_banner = "<a href='page.php?p=1'>首頁</a>";
$page_banner .= "<a href='".$_SERVER['PHP_SELF']."?p=".($page-1)."'>上一頁</a>";
}
for($i=$start; $i<=$end; $i++){
if($page == $i){
$page_banner .= "<span class='current'>{$i}</span>";
}else{
$page_banner .= "<a href='page.php?p=".$i."'>".$i."</a>";
}
}
if($page < $total_pages){
$page_banner .= "<a href='".$_SERVER['PHP_SELF']."?p=".($page+1)."'>下一頁</a>";
$page_banner .= "<a href='page.php?p=$total_pages'>尾頁</a>";
}
echo $page_banner;
echo "共".$total_pages."頁";
?>
</div>
</body>
</html>
2019-06-21
聽的也有點蒙,他這個好像是根據每一頁顯示的5個頁數計算的。你可以根據$showpage的值來重新計算一下$pageoffset的值。我寫了個分頁,可以參考一下