PHP mysql分頁原理實現

2022-08-10 17:36:18 字數 2985 閱讀 3906

編碼寄語:化繁為簡,則豁然開朗。

執行截圖:

關鍵步驟:

建立資料庫

create table `page` (

`id` int(10) not null auto_increment,

`name` varchar(10) default null,

primary key (`id`)

)

傳入頁碼:使用get方法

$page=$_get['p'];
根據頁碼顯示資料:設定每頁顯示數量為pagesize,頁碼為page,則第page頁顯示的第一條資料id為:(page-1)* pagesize 。sql語句如下

$sql="select * from page order by id asc limit ".($page-1)*$pagesize .",";
顯示資料

$result=mysqli_query($conn,$sql);

//將資料顯示到table中,並為table設定格式

echo "";

echo "";

echo "id

name

"; while ($row = mysqli_fetch_assoc($result)) ";

echo "";

echo "";

}echo "";

echo "

"; //釋放結果

mysqli_free_result($result);

知識補充:$page_banner .= 作用是銜接;$_server['php_self']表示當前正在執行的指令碼的檔名。

以上四個步驟可以實現簡單的分頁效果。但page的值只能在位址列手動輸入更改,才能達到分頁的效果。如位址列輸入:http://localhost/mypage.php?p=5  表示當前顯示的是第五頁。

完善階段:page值通過頁碼欄獲取;首頁、尾頁、跳轉功能的實現;介面美化。

完整**如下:mypage.php

<?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)

//選擇所要操作的資料庫

mysqli_select_db($conn,$db);

//設定資料庫編碼格式

mysqli_query($conn,"set names utf8");

//編寫sql獲取分頁資料 select * from 表名 limit 起始位置,顯示條數

$sql="select * from page order by id asc limit ".($page-1)*$pagesize .",";

//把sql語句傳送到資料庫

$result=mysqli_query($conn,$sql);

//將資料顯示到table中,並未table設定格式

echo "";

echo "";

echo "id

name

"; while ($row = mysqli_fetch_assoc($result)) ";

echo "";

echo "";

}echo "";

echo "

"; //釋放結果

mysqli_free_result($result);

//獲取資料總條數

$total_sql="select count(*)from page";

$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="";

//計算偏移量

$pageoffset=($showpage-1)/2;

if($page>1)else

//顯示

$start=1;

$end=$total_pages;

//當總條數大於分頁數時

if($total_pages>$showpage)

if($page>$pageoffset)

//最前面幾個特殊頁號的顯示。當前指的是頁號1或者2時

else

//最後面幾個特殊頁號的顯示,當前顯示的是頁號7和8

if($page+$pageoffset>$total_pages)

}//顯示頁碼

for($i=$start;$i<=$end;$i++)";

}//非當前頁碼顯示

else";

}

}if($total_pages>$showpage&&$total_pages>$page+$pageoffset)

if($page

$page_banner .= "共頁,";

$page_banner .= "";

$page_banner .= "

"; echo $page_banner;

?>

PHP MYSQL分頁原理

select from table limit 開始位置 操作條數 分頁原理 所謂分頁顯示,也就是講資料庫中的結果集,一段一段顯示出來 怎麼分段,當前在第幾段 每頁有幾條,當前再第幾頁 前10條記錄 select from table limit 0,10 第11至20條記錄 select from...

PHP Mysql 分頁原理及應用

分頁程式有兩個非常重要的引數 每頁顯示幾條記錄 pagesize 和當前是第幾頁 page 有了這兩個引數就可以很方便的寫出分頁程式,我們以mysql資料庫作為資料來源,在mysql裡如果要想取出表內某段特定內容可以使用的 t sql語句 select from table limit offset...

基於php mysql實現分頁技術

1.傳入頁碼 page get p url中傳入的值 p 1 2 3.2.傳入分頁資料 host localhost 3307 username root password db test pre page 1 10 pagesize 10 showpage 5 conn mysql connect...