PHP分頁初探 一個最簡單的PHP分頁代碼實現

来源:http://www.cnblogs.com/cisco123/archive/2016/06/21/5603194.html
-Advertisement-
Play Games

PHP分頁代碼在各種程式開發中都是必須要用到的,在網站開發中更是必選的一項。要想寫出分頁代碼,首先你要理解SQL查詢語句:select * from goods limit 2,7。PHP分頁代碼核心就是圍繞這條語句展開的,SQL語句說明:查詢goods數據表從第2條數據開始取出7條數據。在分頁代碼 ...


PHP分頁代碼在各種程式開發中都是必須要用到的,在網站開發中更是必選的一項。

要想寫出分頁代碼,首先你要理解SQL查詢語句:select * from goods limit 2,7。PHP分頁代碼核心就是圍繞這條語句展開的,SQL語句說明:查詢goods數據表從第2條數據開始取出7條數據。在分頁代碼中,7表示每頁顯示多少條內容,2通過公式計算表示翻頁數,通過傳入不同參數替換“2”的值,即可篩選出不同的數據。

index.php:

include 'conn.php';  //引入資料庫操作類

$conn=new conn();  //實例化資料庫操作類

$total=$conn->getOne('select count(*) as total from goods');
$total=$total['total'];	//goods表數據總數據條數
$num=6;	//每頁顯示條數
$totalpage=ceil($total/$num);	//計算頁數
if(isset($_GET['page']) && $_GET['page']<=$totalpage){//這裡做了一個判斷,若get到數據並且該數據小於總頁數情況下才付給當前頁參數,否則跳轉到第一頁
	$thispage=$_GET['page'];
}else{
	$thispage=1;
}

//註意下麵sql語句中紅色部分,通過計算來確定從第幾條數據開始取出,當前頁數減去1後再乘以每頁顯示數據條數 $sql='select goods_id,goods_name,shop_price from goods order by goods_id limit '.($thispage-1)*$num.','.$num.''; $data=$conn->getAll($sql); foreach($data as $k=>$v){ echo '<li>'.$v['goods_id'].'、'.$v['goods_name'].'---¥'.$v['shop_price'].'</li>'; }
//顯示分頁數字列表 for($i=1;$i<=$totalpage;$i++){ echo '<a href="?page='.$i.'">'.$i.'</a> '; }

上述代碼實現了一個最簡單的PHP分頁效果:

僅實現點擊翻頁數字顯示不同的翻頁數據,可以在此基礎上進一步完善,只要基礎原理理解後,後續工作就比較容易開發了。

 

 conn.php代碼:

/*
*連接資料庫 進行相關查詢操作
*/

class conn{

	public function __construct(){
		include_once('config.php');	
		try{	
			$this->pdo = new PDO('mysql:host=localhost;dbname=test', 'root', '123456');
			$this->pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
			$this->pdo->exec('set names utf8');
			

		}catch(PDOException $e){
			echo '資料庫連接失敗:'.$e->getMessage();
			exit();
		}
	}
	
	//獲取一行數據
	public function getOne($sql){
		$rs=$this->pdo->query($sql)->fetch(PDO::FETCH_ASSOC);
		
		return $rs;
	}
	
	//獲取多行數據結果
	public function getAll($sql){
		$rs=$this->pdo->query($sql)->fetchall(PDO::FETCH_ASSOC);
		
		return $rs;

	}
}

  conn.php功能是完成資料庫連接,並實現取出數據操作方法,這裡我使用的是pdo,這裡可以根據大家習慣來組織代碼。

config.php:

/*
*配置資料庫信息
*/

$cfg_dbhost='localhost';
$cfg_dbname='test';
$cfg_dbuser='root';
$cfg_dbpw='123456';

  

該例子僅是為了說明基礎的分頁原理,距真正使用還有很多修改地方。

 示例代碼下載:http://www.superphp.cn/yuanma/332.html


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • ZKEACMS模板組件的核心思想在於內容於視圖分離,內容的展現形式全部由視圖控制,可在不改變內容的情況下,通過切換視圖達到不同的顯示效果。 一個模板組件,可以由多個分組構成,每個分組都有自己的顯示模板。 ...
  • 這個版本主要是以百度圖片為對象,對其進行爬蟲操作,實現了最基本的下載功能,但是缺陷非常多,日後還會對其進行改進。 打開百度圖片,同時打開開發者工具,我們會發現,百度圖片是通過如下的一段ajax來載入圖片的。 http://image.baidu.com/search/index?tn=baiduim ...
  • 環境說明:EntityFramework 6.1.3和.Net Framework4.5性能註意事項:https://msdn.microsoft.com/zh-cn/library/cc853327.aspx比較精髓的一點:查詢執行的各個階段中的準備查詢,每個唯一查詢一次。包括編寫查詢命令、基於模 ...
  • 另外,有時候可能需要轉換成字典處理,則list(set(['a','b'])) ...
  • Java只支持單繼承,但是我們在應用中需要類的多繼承,由此Java中就提供了實現介面的方法來實現多繼承。 介面的本質——介面是一種特殊的抽象類,這種抽象類裡面只包含常量和方法的定義,而沒有變數和方法的實現。 介面總結:介面和介面之間可以相互繼承,類和類之間可以相互繼承,類和介面之間,只能是類來實現接 ...
  • 課本源碼部分 第9章 查找 - B樹 ——《數據結構》-嚴蔚敏.吳偉民版 源碼使用說明 鏈接☛☛☛ 《數據結構-C語言版》(嚴蔚敏,吳偉民版)課本源碼+習題集解析使用說明 課本源碼合輯 鏈接☛☛☛ 《數據結構》課本源碼合輯 習題集全解析 鏈接☛☛☛ 《數據結構題集》習題解析合輯 本源碼引入的文件 鏈 ...
  • http://jingyan.baidu.com/article/f3e34a128551b7f5ea653544.html bin目錄主要是用來存放tomcat的命令,主要有兩大類,一類是以.sh結尾的(linux命令),另一類是以.bat結尾的(windows命令)。 logs目錄用來存放tom ...
  • 課程簡介 * 正則表達式是軟體開發必須掌握的一門語言,掌握後才能很好地理解到它的威力; * 課程採用概念和實驗操作 4/6 分隔,幫助大家理解概念後再使用大量的實例加深對概念的理解; * 實例操作是對概念最好的理解,也是學習新語言最有效的辦法; * 在課程中也穿插著大量軟體開發的技巧和大家分享; *... ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...