日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

php分页技术的作用,分页原理技术细节剖析(php+mysql)实例

發布時間:2024/7/19 数据库 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php分页技术的作用,分页原理技术细节剖析(php+mysql)实例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

提到分頁,大家都不陌生,在我們日常瀏覽網頁時常遇到,尤其新聞文章列表等都有分頁,如下圖所示:

分頁實例

下面,通過一個實例為大家剖析一下分頁原理上技術細節。

一、功能開發思路

在分頁功能的實現前,先做了一個思維導圖理清一下大概的思路,廢話不多說,上圖:

分頁原理思維導圖

二、功能開發各模塊介紹

用到的工具有,輕量級編輯器editplus,mysql數據庫管理工具phpmyadmin,環境為windows 7下Apache+PHP+Mysql。下面,給大家分享一下,運用php、mysql如何實現如上分頁效果。

1.mysql數據庫的創建準備

在設計這個功能時,創建了一個數據庫"fenye",表名為"people",設定了字段——序號(id,為主鍵,自增),姓名(name),性別(sex),如下圖:

數據庫"fenye"結構圖

2.php功能實現介紹

php功能頁面,設計了三個——公共調用頁conn.php,添加信息頁add.php,信息列表頁list.php。下面來做各功能頁面的技術細節分析。 (1).公共調用頁conn.php

該功能頁面主要實現數據庫及表的連接,數據庫編碼的設定,代碼如下:

注解 @ 符號用于屏蔽因mysql連接失敗時報錯顯示的mysql信息,出于用戶體驗和安全性考慮;

die()函數:用于mysql數據庫連接失敗時拋出錯誤提示信息,其中內容自定義。 (2).添加信息頁add.php

該功能頁面主要向數據庫內添加信息記錄,核心功能代碼為插入sql語句,完整代碼如下: 添加信息

注解 三元判斷語句:條件 ? 結果1 : 結果2——成功執行結果1,失敗執行結果2

mysql_error()函數用于返回上一個mysql操作產生的文本錯誤信息提示

(3)信息列表頁list.php

該頁主要功能用于呈現信息列表,并實現分頁功能,先上完整代碼,如下: 添加信息

序號姓名性別$pagesize){ //若總條數大于每頁記錄顯示條數,執行以下分頁代碼 if($pageval<=1){ //當傳遞過來的參數'page'小于等于1時(即避免頁碼出現0或負值) $pageval=1; echo "共 $num 條 ".$pagenum."下一頁 末頁"; }else if((($num/$pagesize)-$pageval)<=0){ //總頁碼(不一定為整數)與當前頁碼的差小于等于0時,即最后一頁,執行以下代碼 echo "共 $num 條 首頁 上一頁".$pagenum; }else{ //其他情況,即頁碼非第一頁或最后一頁,執行以下代碼 echo "共 $num 條 首頁 上一頁".$pagenum."下一頁 末頁"; }}$sql="select * from `people` limit $page $pagesize"; //依照limit條件查詢記錄,賦值$sql為查詢語句$query=mysql_query($sql); //執行代碼while($rs=mysql_fetch_array($query)){ //循環將每條記錄以數組形式存入$rs?>

由于代碼篇幅較長,下面根據功能實現的思路進行細節剖析:首先,找到功能實現的核心基礎,頁碼分頁核心代碼:select * from `表名` limit 起始值,讀取條數;即: $sql="select * from `people` limit $page $pagesize";

需要設定兩個變量,起始值$page,讀取條數$pagesize,$pagesize可人為賦值,起始值$page的獲取則要費一番周折,需要用到分頁公式:起始值=(當前頁面-1)* 每頁顯示條數,因為我們需要關聯到當前的頁碼$pageval,因此得到如下代碼: if($_GET["page"]){ $pageval=$_GET["page"]; $page=($pageval-1)*$pagesize; $page.=",";}

獲取$page后,我們還要實現首頁、上一頁、下一頁、末頁、頁碼羅列、記錄總條數的功能,記錄總條數相對簡單,直接查詢所有記錄條數$num即可,即: $numq=mysql_query("select * from `people`");$num=mysql_num_rows($numq);

至于首頁、上一頁、下一頁、末頁、頁碼羅列這些,則需要運用在超鏈接設置對應的參數'?page='來實現,如: 格式:目標頁

所以$url和對應頁碼是需要想辦法獲取的。首先我們來看$url的獲取,要用到兩個函數:$_SERVER["REQUEST_URI"](用于獲取完整的URL)、parse_url()(將url按照組成部分分類后,以數組形式存放),然后取出路徑path,即: $url=$_SERVER["REQUEST_URI"];$url=parse_url($url);$url=$url[path];

$url獲取后,我們來看一下對應頁碼的獲取,首頁的參數獲取最簡單,直接'page=1'即可,上一頁、下一頁分別為($pageval-1),($pageval+1),末頁則為'page=總頁碼',即$sumpage。此處,首頁、末頁以及中間頁需要進行條件判斷: 首頁:當前頁$pageval小于等于1時;

末頁:當$num(總條數)與$pagesize(每頁顯示條數)的商與當前頁面$pageval的差值小于等于0(即兩者之商小于或等于當前頁值)時;

中間頁:除以上情況。即 if($num>$pagesize){ if($pagesize<=1){ //首頁 $pagesize=1; echo "共 $num 頁 ".$pagenum."下一頁 末頁"; }else if((($num/$pagesize)-$pageval)<=0){ //末頁 echo "共 $num 頁 首頁 上一頁".$pagenum; }else{ //中間頁 echo "共 $num 頁 首頁 上一頁".$pagenum."下一頁 末頁"; }}

其中末頁'page=$sumpage'的取值需兩種情況:當$num(總條數)與$pagesize(每頁顯示條數)的商為整數時,$sumpage=$sum/$pagesize;當兩者之商不為整數時,則$sumpage=intval($sum/$pagesize)+1。即 if(is_integer($sum/$pagesize)){ $sumpage=$sum/$pagesize;}else{ $sumpage=($sum/$pagesize)+1;}

最后,$pagenum(頁碼羅列)需要從第一頁到最后一頁依次打印,所以,此處運用for循環,并進行條件判斷:當處于當前頁碼時,即$i==$pageval,不加超鏈接;除此之外,加超鏈接,即: for($i=1;$i<=$sumpage;$++){ if($i==$pageval){ $pagenum.=$i." "; }else{ $pagenum.="".$i.""; }}

自此,整個分頁功能的各個功能代碼段一一剖析出來,在此代碼基礎上,稍加修改和調整樣式,即可實現常見實用的分頁功能。

(4)總結

其實,對于每一位PHP學習者來說,打好基礎都是非常重要的,可以使我們在以后的學習中避免重復犯錯,影響學習進度和深度,這里推薦大家多通讀幾遍PHP:PHP manual,此外推薦大家一個PHP的REPL:PsySH,供實驗調試PHP代碼,在此祝大家加油,玩轉PHP!

本條技術文章來源于互聯網,如果無意侵犯您的權益請點擊此處反饋版權投訴

本文系統來源:php中文網

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的php分页技术的作用,分页原理技术细节剖析(php+mysql)实例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。