這是我以前學(xué)php寫(xiě)的 哈哈 你可以看看
成都創(chuàng)新互聯(lián)公司堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都做網(wǎng)站、網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的坡頭網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
?php
/**
* 分頁(yè)類
* 1.實(shí)例化分頁(yè)類,例:mypage new page("SQL語(yǔ)句","每頁(yè)顯示記錄條數(shù)");
* 2.調(diào)用類中的 genpage() 方法,返回分頁(yè)生成的SQL語(yǔ)句;
* 3.執(zhí)行新生成的SQL語(yǔ)句;
* 4.調(diào)用 showpage_1() 或 showpage_2() 方法顯示分頁(yè)的翻頁(yè)(可也以自定義返回顯示的方式)
* 實(shí)例:
* $page = new page("select * from ly",2);
* $sql=$page-genpage();
* $ar=mysql_query($sql);
* while($nu=mysql_fetch_array($ar)){
* echo $nu[0].'br';
* }
* $page-showpage_2();
*/
class page{
private $totalnum; //總記錄數(shù)
private $pagecount; //總頁(yè)數(shù)
private $f_pagenum; //當(dāng)前頁(yè)的第一條記錄
private $sql;
private $page; //當(dāng)前頁(yè)
private $page_size; //每頁(yè)顯示數(shù)量
private $pagesql;
private $total;
private $url; //當(dāng)前頁(yè)url
private $beforepage; //上一頁(yè)
private $nextpage; //下一頁(yè)
function __construct($sql,$page_size){ //傳入sql語(yǔ)句和每頁(yè)顯示條數(shù)
$this-sql=$sql;
$this-page_size=$page_size;
$this-page=is_numeric($_GET[page]);
$this-page=substr($this-page,0,10);
$this-page=mysql_real_escape_string($this-page);
if(ereg("^[0-9]*[1-9][0-9]*$",$this-page)!=1){
$this-page=1;
}
if($this-page99999999){
$this-page=1;
}
}
function genpage(){
//
// if(!$this-page){
// $this-page=1;
// }
$this-pagesql = strstr($this-sqlcz," from ");
$this-pagesql = "select count(*) as ids ".$this-pagesql;
$this-total=mysql_query($this-sql);
$this-totalnum=mysql_num_rows($this-total); //總記錄數(shù)
$this-pagecount=ceil($this-totalnum/$this-page_size); //總頁(yè)數(shù)
$this-f_pagenum=$this-page_size*($this-page-1); //當(dāng)前頁(yè)的第一條記錄
$this-sql .=" limit $this-f_pagenum,$this-page_size ";
return $this-sql;
}
//替換url中的page的頁(yè)數(shù)
function replace_page($npage){
$this-url=$_SERVER["REQUEST_URI"]; //獲取當(dāng)前url
$check = strpos($this-url, 'page='); //判斷url中是否有page分頁(yè)參數(shù)
if($check==false){ //如果沒(méi)有page分頁(yè)參數(shù)
if(strpos($this-url, '?')==false){ //判斷是否url是否有“ ?”號(hào),
$this-url=$this-url."?page=1"; //如果沒(méi)有“ ?”號(hào),說(shuō)明之前url沒(méi)有參數(shù)
}else{
$this-url=$this-url."page=1"; //如果有“ ?”號(hào),說(shuō)明有參數(shù),追加參數(shù)要改用符號(hào)
}
}
$npage="page=".$npage; //跳轉(zhuǎn)到的頁(yè)
$zz='[page=\d*]';
return preg_replace($zz,$npage,$this-url); //正則替換掉url中的page參數(shù),實(shí)現(xiàn)分頁(yè)
}
//顯示總頁(yè)數(shù)
function show_all_page(){
return $this-pagecount;
}
//顯示當(dāng)前頁(yè)
function show_current_page(){
return $this-page;
}
//顯示首頁(yè)和上一頁(yè)
function show_firstAndup_page(){
if($this-page==1){
return "首頁(yè)|上一頁(yè)";
}else{
$this-beforepage=$this-page-1;
return "a href=".$this-replace_page(1)."首頁(yè)/a|a href=".$this-replace_page($this-beforepage)."上一頁(yè)/a";
}
}
//顯示下一頁(yè)和最后頁(yè)
function show_lastAnddown_page(){
if(($this-page==$this-pagecount)||($this-pagecount==0)){
return "下一頁(yè)|尾頁(yè)";
}else{
$this-nextpage=$this-page+1;
return "a href=".$this-replace_page($this-nextpage)."下一頁(yè)/a|a href=".$this-replace_page($this-pagecount)."尾頁(yè)/a";
}
}
//循環(huán)顯示頁(yè)數(shù)
function show_loop_page(){
$shownum =10/2;
$startpage = ($this-page$shownum)?$this-page-$shownum:1;
$endpage = ($this-page+$shownum=$this-pagecount)?$this-page+$shownum:$this-pagecount;
for($i=$startpage;$i=$endpage;$i++)
{
if($i==$this-page) {
$a= " b[".($i)."]/b ";
}else{
$a= " a href=".$this-replace_page($i)."".($i)."/a ";
}
$b=$b.$a;
}
return $b;
}
//整體顯示第一種方案
function showpage_1(){
return "共".$this-show_all_page()."頁(yè)nbsp"."當(dāng)前第".$this-show_current_page()."頁(yè)nbsp".$this-show_firstAndup_page()."nbsp"
.$this-show_loop_page()."nbsp".$this-show_lastAnddown_page();
}
//整體顯示第二種方案
function showpage_2(){
return $this-show_firstAndup_page()."nbsp".$this-show_loop_page()."nbsp".$this-show_lastAnddown_page();
}
}
?
對(duì)于MYSQL應(yīng)用,分頁(yè)的核心就是SELECT ... LIMIT $start_no, $page_len
其中的$start_no=$page * $page_len,$page是當(dāng)前頁(yè)號(hào)(0開(kāi)始),$page_len是每頁(yè)顯示的數(shù)量
遇到問(wèn)題的時(shí)候,echo 一下$sql等內(nèi)容,你就知道問(wèn)題出在哪里了
?php
$mysql_server_name="localhost";
$mysql_username='root';
$mysql_password='';
$mysql_database='hp';
$conn=mysql_connect($mysql_server_name,$mysql_username,$mysql_password);
@mysql_connect("localhost","root","")?or?die("數(shù)據(jù)庫(kù)連接失敗");
@mysql_select_db("hp")?or?die("數(shù)據(jù)庫(kù)不存在");
mysql_query("set?names?utf8");
$pagesize?=?$_GET['pagesize']??0???$_GET['pagesize']?:?10;?//默認(rèn)情況下每頁(yè)顯示10條數(shù)據(jù)
$pagenum?=?$_GET['pagenum']??0???$_GET['pagenum']?:?0;
$query_start?=?$pagesize?*?$pagenum;
if($_POST['submit']){
$strsql_add?=?'';
$strsql_add?.=$_POST['idc']???"?and?idc='$_POST[idc]'?":"";
$strsql_add?.=$_POST['jiguihao']???"?and?jiguihao='$_POST[jiguihao]'?":"";
$strsql_add?.=$_POST['neicun']???"?and?neicun='$_POST[neicun]'?":"";
$strsql_add?.=$_POST['yingpan']???"?and?yingpan='$_POST[yingpan]'?":"";
$strsql_add?.=$_POST['xinghao']???"?and?xinghao='$_POST[xinghao]'?":"";
$strsql_add?.=$_POST['cpu']???"?and?cpu='$_POST[cpu]'?":"";
$strsql_add?.=$_POST['guishu']???"?and?guishu='$_POST[guishu]'?":"";
$strsql_add?.=$_POST['ip']???"?and?ip='$_POST[ip]'?":"";
}
$strsql="select?*?from?zichan?where?1=1?$strsql_add?limit?$query_start,?$pagesize";
$result=mysql_db_query($mysql_database,$strsql,$conn);
$row=mysql_fetch_row($result);
$nextpage_num?=?$pagenum++;
$lastpage_num?=?ceil(count($row)/$pagesize);
echo?'font?face="verdana"';
echo?'table?border="1"?cellpadding="1"?cellspacing="2"';
//?顯示字段名稱
echo?"/btr/b";
for?($i=0;?$imysql_num_fields($result);?$i++)
{
echo?'td?bgcolor="#00FF00"b'.
mysql_field_name($result,?$i);
echo?"/b/td/b";
}
echo?"/tr/b";
//?定位到第一條記錄
mysql_data_seek($result,?0);
//?循環(huán)取出記錄
while?($row=mysql_fetch_row($result))
{
echo?"tr/b";
for?($i=0;?$imysql_num_fields($result);?$i++?)
{
echo?'td?bgcolor="#00FF00"';
echo?$row[$i];
echo?'/td';
}
echo?'tda?href=\'xiugai.php?id='.$row[0].'\'修改/a';
echo?'/td';
echo?'tda?href="javascript:void(0)"?onclick="if(window.confirm(\'確認(rèn)刪除?\')){window.location.href=\'del.php?id='.$row[0].'\'}"刪除/a';
echo?'/td';
echo?"/tr/b";
}
echo?"/table/b";
echo?"/font";
//?釋放資源
mysql_free_result($result);
//?關(guān)閉連接
mysql_close($conn);
?
html頁(yè)面要增加的參數(shù):
首頁(yè) 增加 pagenum=0 或者 不加
下一頁(yè) pagenum= $nextpage_num
尾頁(yè) pagenum= $lastpage_num
php本身是沒(méi)有分頁(yè)概念的,分頁(yè)是URL傳參,然后通過(guò)mysql查詢語(yǔ)句到數(shù)據(jù)庫(kù)獲取數(shù)據(jù),然后實(shí)現(xiàn)的分頁(yè),url上的參數(shù),通過(guò)PHP的$_GET都是可以獲取到的。
現(xiàn)在市面上的PHP框架基本都有PHP分頁(yè)類,參照文檔直接調(diào)用就好了,如果想看實(shí)現(xiàn)過(guò)程,可以去下載一個(gè)TP框架,然后打開(kāi)里面的分頁(yè)類查看里面的源代碼。
你的頁(yè)面跳轉(zhuǎn), 要把原來(lái)有的get參數(shù)一同傳遞下去!
因?yàn)椋?如果你第一頁(yè)就是根據(jù)相關(guān)get參數(shù)查詢的數(shù)據(jù)庫(kù), 而你在下一頁(yè)沒(méi)有提供這個(gè)參數(shù), 當(dāng)然會(huì)查詢不到!
get參數(shù)是在當(dāng)前頁(yè)面有效的, 一般, get參數(shù)是url提供, 你url有就有, 沒(méi)有就沒(méi)有, 不是你提供一次, 人家就會(huì)給你保存一輩子!
例外, 你這個(gè)php文件, 功能其實(shí)很簡(jiǎn)單對(duì)吧?但你有沒(méi)有覺(jué)得, 代碼密密麻麻呢?
如果讓你寫(xiě)一個(gè)大型網(wǎng)站, 那你的代碼豈不是要用東風(fēng)牌大卡車來(lái)裝呢?
?php
include("connection.php");
$perNumber=10; //每頁(yè)顯示的記錄數(shù)
$page=$_GET['page']; //獲得當(dāng)前的頁(yè)面值
$count=mysql_query("select count(*) from user"); //獲得記錄總數(shù)
$rs=mysql_fetch_array($count);
$totalNumber=$rs[0];
$totalPage=ceil($totalNumber/$perNumber); //計(jì)算出總頁(yè)數(shù)
if (!isset($page)) {
$page=1;
} //如果沒(méi)有值,則賦值1
$startCount=($page-1)*$perNumber; //分頁(yè)開(kāi)始,根據(jù)此方法計(jì)算出開(kāi)始的記錄
$result=mysql_query("select * from user limit $startCount,$perNumber"); //根據(jù)前面的計(jì)算出開(kāi)始的記錄和記錄數(shù)
while ($row=mysql_fetch_array($result)) {
echo "user_id:".$row[0]."br";
echo "username:".$row[1]."br"; //顯示數(shù)據(jù)庫(kù)的內(nèi)容
}
if ($page != 1) { //頁(yè)數(shù)不等于1
?
a href="fenye.php?page=?php echo $page - 1;?"上一頁(yè)/a !--顯示上一頁(yè)--
?php
}
for ($i=1;$i=$totalPage;$i++) { //循環(huán)顯示出頁(yè)面
?
a href="fenye.php?page=?php echo $i;?"?php echo $i ;?/a
?php
}
if ($page$totalPage) { //如果page小于總頁(yè)數(shù),顯示下一頁(yè)鏈接
?
a href="fenye.php?page=?php echo $page + 1;?"下一頁(yè)/a
?php
}
?
================================
這個(gè)是很簡(jiǎn)單的..而且也寫(xiě)了注釋..不知道合不合你的意..