本文目錄一覽:
php分頁代碼
?phpbr
include(“connection.php”);
$perNumber=10;
//每頁顯示的記錄數
$page=$_GET[‘page’];
//獲得當前的頁面值
$count=mysql_query(“select
count(*)
from
user”);
//獲得記錄總數
$rs=mysql_fetch_array($count);
$totalNumber=$rs[0];
$totalPage=ceil($totalNumber/$perNumber);
//計算出總頁數
if
(!isset($page))
{
$page=1;
}
//如果沒有值,則賦值1
$startCount=($page-1)*$perNumber;
//分頁開始,根據此方法計算出開始的記錄
$result=mysql_query(“select
*
from
user
limit
$startCount,$perNumber”);
//根據前面的計算出開始的記錄和記錄數
while
($row=mysql_fetch_array($result))
{
echo
“user_id:”.$row[0].”
“;
echo
“username:”.$row[1].”
“;
//顯示數據庫的內容
}
if
($page
!=
1)
{
//頁數不等於1
?
上一頁
顯示上一頁
?phpbr
}
for
($i=1;$i=$totalPage;$i++)
{
//循環顯示出頁面
?
?php
echo
$i
;?
?phpbr
}
if
($page$totalPage)
{
//如果page小於總頁數,顯示下一頁鏈接
?
下一頁
?phpbr
}
?
================================
這個是很簡單的..而且也寫了注釋..不知道合不合你的意..
PHP怎麼製作分頁
方法/步驟
首先要了解下分頁的原理即
SELECT * FROM table …… limit 開始位置 , 操作條數
開始位置從0開始
SELECT * FROM table …… limit 0 , 20
取最前面20條
SELECT * FROM table …… limit 10 , 20
11條到20條
其次分頁要用的公式
得到公式
(當前頁數 – 1 )X 每頁條數 , 每頁條數
Select * from table limit ($Page- 1) * $PageSize, $PageSize
還要了解parse_url()解析URL函數
parse_url() 是講URL解析成有固定鍵值的數組的函數
$ua=parse_url(“”);
print_r($ua);
結果:
Array
(
[scheme] = http
[host] = hostname
[user] = username
[pass] = password
[path] = /path
[query] = arg=value
[fragment] = anchor
)
創建數據庫bbs和表test有
CREATE TABLE `test` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(50) character set gb2312 NOT NULL,
`sex` varchar(2) character set gb2312 NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=11 ;
然後插入十幾條測試數據即可
寫mysql數據庫連接代碼保存conn.php文件里
代碼如下
?php
$conn = @ mysql_connect(“localhost”, “root”, “”) or die(“數據庫鏈接錯誤”);
mysql_select_db(“bbs”, $conn);
mysql_query(“set names ‘GBK'”); //使用GBK中文編碼;
function htmtocode($content) {
$content = str_replace(“\n”, “br”, str_replace(” “, ” “, $content));
return $content;
}
//$content=str_replace(“‘”,”‘”,$content);
//htmlspecialchars();
?
寫分頁函數page.php
代碼如下
?php
function _PAGEFT($totle, $displaypg = 20, $url = ”) {
global $page, $firstcount, $pagenav, $_SERVER;
$GLOBALS[“displaypg”] = $displaypg;
if (!$page)
$page = 1;
if (!$url) {
$url = $_SERVER[“REQUEST_URI”];
}
//URL分析:
$parse_url = parse_url($url);
$url_query = $parse_url[“query”]; //單獨取出URL的查詢字串
if ($url_query) {
$url_query = ereg_replace(“(^|)page=$page”, “”, $url_query);
$url = str_replace($parse_url[“query”], $url_query, $url);
if ($url_query)
$url .= “page”;
else
$url .= “page”;
} else {
$url .= “?page”;
}
$lastpg = ceil($totle / $displaypg); //最後頁,也是總頁數
$page = min($lastpg, $page);
$prepg = $page -1; //上一頁
$nextpg = ($page == $lastpg ? 0 : $page +1); //下一頁
$firstcount = ($page -1) * $displaypg;
//開始分頁導航條代碼:
$pagenav = “顯示第 B” . ($totle ? ($firstcount +1) : 0) . “/B-B” . min($firstcount + $displaypg, $totle) . “/B 條記錄,共 $totle 條記錄”;
//如果只有一頁則跳出函數:
if ($lastpg = 1)
return false;
$pagenav .= ” a href=’$url=1’首頁/a “;
if ($prepg)
$pagenav .= ” a href=’$url=$prepg’前頁/a “;
else
$pagenav .= ” 前頁 “;
if ($nextpg)
$pagenav .= ” a href=’$url=$nextpg’後頁/a “;
else
$pagenav .= ” 後頁 “;
$pagenav .= ” a href=’$url=$lastpg’尾頁/a “;
//下拉跳轉列表,循環列出所有頁碼:
$pagenav .= ” 到第 select name=’topage’ size=’1′ onchange=’window.location=\”$url=\”+this.value’\n”;
for ($i = 1; $i = $lastpg; $i++) {
if ($i == $page)
$pagenav .= “option value=’$i’ selected$i/option\n”;
else
$pagenav .= “option value=’$i’$i/option\n”;
}
$pagenav .= “/select 頁,共 $lastpg 頁”;
}
include(“conn.php”);
$result=mysql_query(“SELECT * FROM `test`”);
$total=mysql_num_rows($result);
//調用pageft(),每頁顯示10條信息(使用默認的20時,可以省略此參數),使用本頁URL(默認,所以省略掉).
_PAGEFT($total,5);
echo $pagenav;
$result=mysql_query(“SELECT * FROM `test` limit $firstcount,$displaypg “);
while($row=mysql_fetch_array($result)){
echo “hrb”.$row[name].” | “.$row[sex];
}
?
調用數據和分頁list.php
?php
/**
* 愛微網
*/
include(“conn.php”);
$pagesize=5;
$url=$_SERVER[“REQUEST_URI”];
$url=parse_url($url);
$url=$url[path];
$numq=mysql_query(“SELECT * FROM `test`”);
$num = mysql_num_rows($numq);
if($_GET[page]){
$pageval=$_GET[page];
$page=($pageval-1)*$pagesize;
$page.=’,’;
}
if($num $pagesize){
if($pageval=1)$pageval=1;
echo “共 $num 條”.
” a href=$url?page=”.($pageval-1).”上一頁/a a href=$url?page=”.($pageval+1).”下一頁/a”;
}
echo $SQL=”SELECT * FROM `test` limit $page $pagesize “;
$query=mysql_query($SQL);
while($row=mysql_fetch_array($query)){
echo “hrb”.$row[name].” | “.$row[sex];
}
?
注意事項
注意分頁公式寫法你只要記住即可;
(當前頁數 – 1 )X 每頁條數 , 每頁條數;
Select * from table limit ($Page- 1) * $PageSize, $PageSize;
注意三個代碼文件在同一個目錄下;
主要是最後的list.php調用代碼要細看很有用。
求PHP各種分頁方法,各位大仙有的別藏了~~
PHP分頁方法:
第一步創建一個類 subPages.php?php
class SubPages{
private $each_disNums;//每頁顯示的條目數
private $nums;//總條目數
private $current_page;//當前被選中的頁
private $sub_pages;//每次顯示的頁數
private $pageNums;//總頁數
private $page_array = array();//用來構造分頁的數組
private $subPage_link;//每個分頁的鏈接
private $subPage_type;//顯示分頁的類型
//__construct是SubPages的構造函數,用來在創建類的時候自動運行. //@$each_disNums 每頁顯示的條目數 // @nums 總條目數 // @current_num 當前被選中的頁 //@sub_pages 每次顯示的頁數 // @subPage_link 每個分頁的鏈接 //@subPage_type 顯示分頁的類型 //當@subPage_type=1的時候為普通分頁模式 example: 共4523條記錄,每頁顯示10條,當前第1/453頁 [首頁] [上頁] [下頁] [尾頁] //當@subPage_type=2的時候為經典分頁樣式 example: 當前第1/453頁 [首頁] [上頁] 1 2 3 4 5 6 7 8 9 10 [下頁] [尾頁]
function __construct($each_disNums,$nums,$current_page,$sub_pages,$subPage_link,$subPage_type){
//intval通過使用特定的進制轉換(默認是十進制),返回變量 var 的 integer 數值
$this-each_disNums=intval($each_disNums);
$this-nums=intval($nums);
if(!$current_page){
$this-current_page=1;
}else{
$this-current_page=intval($current_page);
}
$this-sub_pages=intval($sub_pages);
$this-pageNums=ceil($nums/$each_disNums);
$this-subPage_link=$subPage_link;
$this-show_SubPages($subPage_type);
//echo $this-pageNums.”–“.$this-sub_pages;
}
//__destruct析構函數,當類不在使用的時候調用,該函數用來釋放資源
function __destruct(){
unset($each_disNums);
unset($nums);
unset($current_page);
unset($sub_pages);
unset($pageNums);
unset($page_array);
unset($subPage_link);
unset($subPage_type);
}
//show_SubPages函數用在構造函數裏面。而且用來判斷顯示什麼樣子的分頁
function show_SubPages($subPage_type){
if($subPage_type == 1){
$this-subPageCss1();
}elseif ($subPage_type == 2){
$this-subPageCss2();
}
}
//用來給建立分頁的數組初始化的函數。
function initArray(){
for($i=0;$i$this-sub_pages;$i++){
$this-page_array[$i]=$i;
}
return $this-page_array;
}
//construct_num_Page該函數使用來構造顯示的條目
// 即使:[1][2][3][4][5][6][7][8][9][10]
function construct_num_Page(){
if($this-pageNums $this-sub_pages){
$current_array=array();
for($i=0;$i$this-pageNums;$i++){
$current_array[$i]=$i+1;
}
}else{
$current_array=$this-initArray();
if($this-current_page = 3){
for($i=0;$icount($current_array);$i++){
$current_array[$i]=$i+1;
}
}elseif ($this-current_page = $this-pageNums $this-current_page $this-pageNums – $this-sub_pages +1 ){
for($i=0;$icount($current_array);$i++){
$current_array[$i]=($this-pageNums)-($this-sub_pages)+1+$i;
}
}else{
for($i=0;$icount($current_array);$i++){
$current_array[$i]=$this-current_page-2+$i;
}
}
}
return $current_array;
}
//構造普通模式的分頁
//共4523條記錄,每頁顯示10條,當前第1/453頁 [首頁] [上頁] [下頁] [尾頁]
function subPageCss1(){
$subPageCss1Str=””;
$subPageCss1Str.=”共”.$this-nums.”條記錄,”;
$subPageCss1Str.=”每頁顯示”.$this-each_disNums.”條,”;
$subPageCss1Str.=”當前第”.$this-current_page.”/”.$this-pageNums.”頁 “;
if($this-current_page 1){
$firstPageUrl=$this-subPage_link.”1″;
$prewPageUrl=$this-subPage_link.($this-current_page-1);
$subPageCss1Str.=”[a href=’$firstPageUrl’首頁/a] “;
$subPageCss1Str.=”[a href=’$prewPageUrl’上一頁/a] “;
}else {
$subPageCss1Str.=”[首頁] “;
$subPageCss1Str.=”[上一頁] “;
}
if($this-current_page $this-pageNums){
$lastPageUrl=$this-subPage_link.$this-pageNums;
$nextPageUrl=$this-subPage_link.($this-current_page+1);
$subPageCss1Str.=” [a href=’$nextPageUrl’下一頁/a] “;
$subPageCss1Str.=”[a href=’$lastPageUrl’尾頁/a] “;
}else {
$subPageCss1Str.=”[下一頁] “;
$subPageCss1Str.=”[尾頁] “;
}
echo $subPageCss1Str;
}
//構造經典模式的分頁
//當前第1/453頁 [首頁] [上頁] 1 2 3 4 5 6 7 8 9 10 [下頁] [尾頁]
function subPageCss2(){
$subPageCss2Str=””;
$subPageCss2Str.=”當前第”.$this-current_page.”/”.$this-pageNums.”頁 “;
if($this-current_page 1){
$firstPageUrl=$this-subPage_link.”1″;
$prewPageUrl=$this-subPage_link.($this-current_page-1);
$subPageCss2Str.=”[a href=’$firstPageUrl’首頁/a] “;
$subPageCss2Str.=”[a href=’$prewPageUrl’上一頁/a] “;
}else {
$subPageCss2Str.=”[首頁] “;
$subPageCss2Str.=”[上一頁] “;
}
$a=$this-construct_num_Page();
for($i=0;$icount($a);$i++){
$s=$a[$i];
if($s == $this-current_page ){
$subPageCss2Str.=”[span style=’color:red;font-weight:bold;'”.$s.”/span]”;
}else{
$url=$this-subPage_link.$s;
$subPageCss2Str.=”[a href=’$url'”.$s.”/a]”;
}
}
if($this-current_page $this-pageNums){
$lastPageUrl=$this-subPage_link.$this-pageNums;
$nextPageUrl=$this-subPage_link.($this-current_page+1);
$subPageCss2Str.=” [a href=’$nextPageUrl’下一頁/a] “;
$subPageCss2Str.=”[a href=’$lastPageUrl’尾頁/a] “;
}else {
$subPageCss2Str.=”[下一頁] “;
$subPageCss2Str.=”[尾頁] “;
}
echo $subPageCss2Str;
}
}
?要做分頁的頁面?php//每頁顯示的條數
$page_size=2;
//得到當前是第幾頁
$pageCurrent=$_GET[“p”];
$offet =($pageCurrent-1)*$page_size;
//建立數據庫連接
$conn = mysql_connect(“地址”,”用戶名”,”密碼”) or die(“”.mysql_error());
//設置字符集
mysql_query(“set names gbk”);
//設置數據庫
mysql_select_db(“數據庫名”,$conn) or die(“”.mysql_error());
if($conn) { include (“query.html”);
//查詢會員信息//注:這裡的sql查詢了兩遍.第一遍是確定查詢出來的總數據條數
$query_sql = “SELECT * FROM user_info_t order by id desc”;//第二遍是根據需要即$page_size來確定每次查出的條數
$query_sql_sec= “SELECT * FROM user_info_t order by id desc limit $offet,$page_size”;
//執行查詢語句 返回一個結果集
$query_res = mysql_query($query_sql,$conn);
$query_res_sec = mysql_query($query_sql_sec,$conn);
//查詢列數
//$query_cols = mysql_num_fields($query_res);
//查詢行數
$query_num =mysql_num_rows($query_res);
//返回根據從結果集取得的行生成的數組,如果沒有更多行
echo “table border=’0′ cellpadding=’1′ cellspacing=’2′ width=’100%’ bgcolor=’#FFFFFF'”;
while($query_row = mysql_fetch_array($query_res_sec)) {
echo “tr”;
for ($i=0;$i$query_cols;$i++) {
echo “td bordercolor=’#A2BEE1′ bgcolor=’#A2BEE1′ width=’8%'”.$query_row[$i].”/td\n”;
}
echo “td bordercolor=’#A2BEE1′ bgcolor=’#A2BEE1′ width=’8%'”;
//echo “input type=’button’ class=’button’ id=’modify_record’ name=’modify_record’ value=’修改’ /”;
echo”button onClick=\”submit(location.href=’../modify/modify.php?rec_id=$query_row[0]’);\”class=\”button\”;修改/button”;
//echo “ahref=’../delete/delete.php?rec_id=$query_row[0]’onClick=\”if(confirm(‘確實要刪除此條記錄嗎?’)) return true;else returnfalse;\”img src=\”../image/delete.gif\” align=\”absmiddle\”/刪除/a”;
echo “buttononClick=\”if(confirm(‘確實要刪除此條記錄嗎?’)) return submit(location.href=’../delete/delete.php?rec_id=$query_row[0]’);else return false;\”class=\”button\”;刪除/button”;
echo “/td”;
echo “/tr”;
}
//echo “/form”;
echo “/table”;
require_once(“../common/subPages.php”);//總條目數為數據庫中查詢出的數據條數
$nums=$query_num;
//每次顯示的頁數
$sub_pages=10; //if(!$pageCurrent) $pageCurrent=1;
//調用類SubPages 傳的參數為:每頁顯示條數/當前第幾頁/每次顯示的頁數/分頁模式
$subPage=new SubPages($page_size,$nums,$pageCurrent,$sub_pages,”query.php?p=”,1);
}else{
die(‘數據庫連接異常: ‘.mysql_error());
}
//斷開數據庫連接
if ($conn)
{
mysql_close($conn);
}
?
php分頁功能怎麼實現
php本身是沒有分頁概念的,分頁是URL傳參,然後通過mysql查詢語句到數據庫獲取數據,然後實現的分頁,url上的參數,通過PHP的$_GET都是可以獲取到的。
現在市面上的PHP框架基本都有PHP分頁類,參照文檔直接調用就好了,如果想看實現過程,可以去下載一個TP框架,然後打開裏面的分頁類查看裏面的源代碼。
PHP分頁顯示最簡單代碼
簡單寫法:
?php
include
(“./config/conn.php”);
$sql=”select
*
from
ly
order
by
id
desc”;
$result=mysql_query($sql);
$num=mysql_num_rows($result);
//統計行數
$pages=ceil($num/5);
//總頁數
$page=$_GET[‘page’];
//獲得page,如果沒有設置或者page=0,把$page=1;
if(!isset($page)
||
$page==0)
$page=1;
$start=($page-1)*5;
$sql=”select
*
from
ly
order
by
id
desc
limit
$start,5″;
mysql_query($sql);
if($sumpage!=0)
{
if($page!=1)
{
echo
“a
href=$PHP_SELF?page=1首頁/a\t”;
}else
{
echo
“首頁\t”;
}
if($page1)
{
echo
“a
href=$PHP_SELF?page=”.($page-1).”上一頁/a\t”;
}else
{
echo
“上一頁\t”;
}
if($page$pages)
{
echo
“a
href=$PHP_SELF?page=”.($page+1).”下一頁/a\t”;
}else
{
echo
“下一頁\t”;
}
if($page!=$pages)
{
echo
“a
href=$PHP_SELF?page=”.$pages.”尾頁/a\t”;
}else
{
echo
“尾頁\t”;
}
}else
{
echo
“目前沒有記錄!!”;
}
求一個簡單一點的 PHP 分頁程序
?php
/*
$total記錄總數 $total_page頁數總數 $page_no選擇頁數 $prev_page前一頁 $next_page後一頁 $page_size每頁顯示記錄數 $start記錄起始數
*/
$page_size=20;//每頁顯示數目
if(empty($page_no)) $page_no=1;
$start=($page_no-1)*$page_size;
$sql=”select * from `tw_vote_log`”;
$result=mysql_query($sql);
$total=mysql_num_rows($result);
$total_page=ceil($total/$page_size);
$prev_page=$page_no-1;
$next_page=$page_no+1;
if ($prev_page1) $prev_page=1;
if ($next_page$total_page) $next_page=$total_page;
$showpage=”共有bfont color=’#FF0000’$total/font/b條記錄 共bfont color=’#FF0000’$total_page/font/b頁 每頁bfont color=’#FF0000′{$page_size}/font/b條記錄 當前為第bfont color=’#FF0000’$page_no/font/b頁 a href=’?$urlpage_no=$prev_page’上一頁/a a href=’?$urlpage_no=$next_page’下一頁/a”;
echo “center$showpage/center”;
?
-------------------
一個簡單的分頁程序
將$tablename改為你要搜索的表名,$PageSize每頁顯示數量
獲取記錄總數,頁數,以及當前頁……
?php
// 查詢記錄的表名
$tablename=”bareas”;
// 每頁數量
$PageSize = 5;
//頁面名稱
if ($_SERVER[“SERVER_PORT”]==80) {
$filename = “http://” . $_SERVER[』SERVER_NAME』] .$_SERVER[“SERVER_PORT”] .$_SERVER[』PHP_SELF』];//獲取當前頁面
}else{
$filename = “http://” . $_SERVER[』SERVER_NAME』] .”:” . $_SERVER[“SERVER_PORT”] .$_SERVER[』PHP_SELF』];
}
// 獲取當前頁數
if( isset($_GET[』page』]) ){
$page = intval( $_GET[』page』] );
}
else{
$page = 1;
}
// 獲取總數據量
$csql = “select count(*) as amount from $tablename”;
$con = mysql_query($csql);
$crow = mysql_fetch_array($con);
$amount = $crow[』amount』];
// 記算總共有多少頁
if( $amount ){
if( $amount $PageSize ){
//如果總數據量小於$PageSize,那麼只有一頁
$page_count = 1;
}
else{
//取總數據量除以每頁數的餘數
if( $amount % $PageSize ){
//如果有餘數,則頁數等於總數據量除以每頁數的結果取整再加一
$page_count = (int)($amount / $PageSize) + 1;
}else{
//如果沒有餘數,則頁數等於總數據量除以每頁數的結果
$page_count = $amount / $PageSize;
}
}
}else{
$page_count = 0;
}
//獲得偏移量
$sqlpage=($page-1)*$PageSize;
$sql = “select * from $tablename order by id limit $sqlpage,$PageSize”;
$result =mysql_query($sql);
if ($myrow = mysql_fetch_array($result)){
do {
//……輸出內容,此處什略
}while ($myrow = mysql_fetch_array($result));
}else {
echo “沒有任何記錄!”;
}
?
分頁顯示的內容
共 strong?php echo $amount; ?/strong 條記錄 每頁 strong?php echo $PageSize; ?/strong 條記錄 strong?php echo $page; ?/strong / strong?php echo $page_count; ?/strong nbsp;頁
?php if ($page 1) {?a href=”?php echo $filename; ?”首 頁/a?php } ? ?php if ($ page 1 and $page_count1) {?a href=”?php echo $filename; ??page=?php echo $page-1; ?”上一頁/a?php } ? ?php if ($page_count$page) {?a href=”?php echo $ filename; ??page=?php echo $page+1; ?”下一頁/a? php } ? ?php if ($page_count 1 and $page $page_count) {? a href=”?php echo $filename; ??page=?php echo $page_count; ?”尾 頁/a?php } ? ?php if ($page_count1) {?到
select name=”page” id=”page” onchange=”window.location.href = this.value;”
?php
for ($i=1; $i=$page_count; $i++) {
?
option value=”?php echo $filename; ??page=?php echo $i; ?”?php if ($_GET[』page』]==$i) echo “selected”; ??php echo $i; ?/option
?php } ?
/select
頁?php } ?
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/279119.html