php mysql 实现原理_php+mysql分页原理实现
完整代碼如下:
!
html
head
-="-type"=";=GBK"
styletype="text/css"
body{font-size:12px;font-family:verdana;width:100%;
}
div.page{
text-align:center;
}
div.content{
height:300px;
}
div.pagea{
border:#aaaadd1pxsolid;text-decoration:none;padding:2px5px2px5px;margin:2px;}
div.pagespan.current{
border:#0000991pxsolid;background-color:#000099;padding:2px5px2px5px;margin:2px;color:#fff;font-weight:bold;}
div.pagespan.disable{
border:#eee1pxsolid;padding:2px5px2px5px;margin:2px;color:#ddd;}
div.pageform{
display:inline;
}
/stylebody?php
//設置級別錯誤,通知類除外error_reporting('E_ALL~E_NOTICE');
/**1---傳入頁碼,使用GET獲取**/$page=$_GET['p'];
/**2---根據頁碼取出數據:php-mysql處理**/$host="localhost";
$username="root";
$password="";
$db="test";
$pageSize=10;
$showPage=5;
//連接數據庫,面向過程$conn=mysqli_connect($host,$username,$password);
if(!$conn){
echo"數據庫連接失敗";
exit;
}
//選擇所要操作的數據庫mysqli_select_db($conn,$db);
//設置數據庫編碼格式mysqli_query($conn,"SETNAMESUTF8");
//編寫sql獲取分頁數據SELECT*FROM表名LIMIT起始位置,顯示條數$sql="SELECT*FROMpageorderbyidASCLIMIT".($page-1)*$pageSize.",{$pageSize}";
//把sql語句傳送到數據庫$result=mysqli_query($conn,$sql);
//將數據顯示到table中,并未table設置格式echo"divclass='content'
echo"tableborder=1cellspacing=0width=30%align=center
echo"trtdID/tdtdNAME/td/tr
while($row=mysqli_fetch_assoc($result)){
echo"tr
echo"td{$row['ID']}/td
echo"td{$row['NAME']}/td
echo"tr
}
echo"/table
echo"/div
//釋放結果mysqli_free_result($result);
//獲取數據總條數$total_sql="SELECTCOUNT(*)FROMpage";
$total_result=mysqli_fetch_array(mysqli_query($conn,$total_sql));
$total=$total_result[0];
$total_pages=ceil($total/$pageSize);
//關閉數據庫mysqli_close($conn);
/**3---顯示數據+顯示分頁條**/$page_banner="divclass='page'
//計算偏移量$pageoffset=($showPage-1)/2;
//兩種情況下首頁、上一頁的顯示效果if($page1){
$page_banner.="ahref='".$_SERVER['PHP_SELF']."?p=1'首頁/a
$page_banner.="ahref='".$_SERVER['PHP_SELF']."?p=".($page-1)."'上一頁/a
}else{
$page_banner.="spanclass='disable'首頁/span
$page_banner.="spanclass='disable'上一頁/span
}
//顯示$start=1;
$end=$total_pages;
//當總條數大于分頁數時if($total_pages$showPage){
if($page$pageoffset+1){
$page_banner.="...";
}
if($page$pageoffset){
$start=$page-$pageoffset;
$end=$total_pages$page+$pageoffset?$page+$pageoffset:$total_pages;//三段式}
//最前面幾個特殊頁號的顯示。當前指的是頁號1或者2時else{
$start=1;
$end=$showPage;
}
//最后面幾個特殊頁號的顯示,當前顯示的是頁號7和8if($page+$pageoffset$total_pages){
$start=$start-($page+$pageoffset-$end);//注意理解這一句}
}
//顯示頁碼for($i=$start;$i=$end;$i++){
//當前頁頁碼上顯示背景色if($page==$i){
$page_banner.="spanclass='current'{$i}/span
}
//非當前頁碼顯示else{
$page_banner.="ahref='".$_SERVER['PHP_SELF']."?p=".$i."'{$i}/a
}
}
if($total_pages$showPage$total_pages$page+$pageoffset){
$page_banner.="...";
}
//兩種情況下的尾頁、下一頁的顯示效果if($page$total_pages){
$page_banner.="ahref='".$_SERVER['PHP_SELF']."?p=".($page+1)."'下一頁/a
$page_banner.="ahref='".$_SERVER['PHP_SELF']."?p=$total_pages'尾頁/a
}else{
$page_banner.="spanclass='disable'尾頁/span
$page_banner.="spanclass='disable'下一頁/span
}
$page_banner.="共{$total_pages}頁,";
$page_banner.="formaction='mypage.php'method='get'
$page_banner.="到第inputtype='text'size=2value='1'name='p'頁";
$page_banner.="inputtype='submit'value='確定'
$page_banner.="/form
$page_banner.="/div
echo$page_banner;
?/body/html
總結
以上是生活随笔為你收集整理的php mysql 实现原理_php+mysql分页原理实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 民生手机银行信用卡如何账单分期
- 下一篇: mysql怎么回复.from的数据库_m