完善:加了頁碼跳轉(zhuǎn)文本框
<?php function page($page,$total,$phpfile,$pagesize=10,$pagelen=7){ $pagecode = '';//定義變量,存放分頁生成的HTML $page = intval($page);//避免非數(shù)字頁碼 $total = intval($total);//保證總記錄數(shù)值類型正確 if(!$total) return array();//總記錄數(shù)為零返回空數(shù)組 $pages = ceil($total/$pagesize);//計算總分頁 //處理頁碼合法性 if($page<1) $page = 1; if($page>$pages) $page = $pages; //計算查詢偏移量 $offset = $pagesize*($page-1); //頁碼范圍計算 $init = 1;//起始頁碼數(shù) $max = $pages;//結(jié)束頁碼數(shù) $pagelen = ($pagelen%2)?$pagelen:$pagelen+1;//頁碼個數(shù) $pageoffset = ($pagelen-1)/2;//頁碼個數(shù)左右偏移量 //生成html $pagecode='<div class="page">'; $pagecode.="<span>$page/$pages</span>";//第幾頁,共幾頁 //如果是第一頁,則不顯示第一頁和上一頁的連接 if($page!=1){ $pagecode.="<a href=\"{$phpfile}?page=1\"><<</a>";//第一頁 $pagecode.="<a href=\"{$phpfile}?page=".($page-1)."\"><</a>";//上一頁 } //分頁數(shù)大于頁碼個數(shù)時可以偏移 if($pages>$pagelen){ //如果當(dāng)前頁小于等于左偏移 if($page<=$pageoffset){ $init=1; $max = $pagelen; }else{//如果當(dāng)前頁大于左偏移 //如果當(dāng)前頁碼右偏移超出最大分頁數(shù) if($page+$pageoffset>=$pages+1){ $init = $pages-$pagelen+1; }else{ //左右偏移都存在時的計算 $init = $page-$pageoffset; $max = $page+$pageoffset; } } } //生成html for($i=$init;$i<=$max;$i++){ if($i==$page){ $pagecode.='<span>'.$i.'</span>'; } else { $pagecode.="<a href=\"{$phpfile}?page={$i}\">$i</a>"; } } if($page!=$pages){ $pagecode.="<a href=\"{$phpfile}?page=".($page+1)."\">></a>";//下一頁 $pagecode.="<a href=\"{$phpfile}?page={$pages}\">>></a>";//最后一頁 } $pagecode.="<input type=\"text\" size=\"3\" onkeydown=\"if(event.keyCode==13) {window.location.href='{$phpfile}?page='+this.value; return false;}\" /></div>"; return array('pagecode'=>$pagecode,'sqllimit'=>' limit '.$offset.','.$pagesize); } ?>
以下是新手使用說明
<?php $phpfile = 'index.php';//頁面文件名 $page= isset($_GET['page'])?$_GET['page']:1;//默認(rèn)頁碼 $db = mysql_connect('localhost','test','test');//鏈接數(shù)據(jù)庫 mysql_select_db('test',$db);//選擇數(shù)據(jù)庫 $counts = mysql_num_rows(mysql_query('select `id` from `test`',$db));//獲取需要的數(shù)據(jù)總條數(shù) $sql='select `id`,`title` from `test`';//定義查詢語句SQL $getpageinfo = page($page,$counts,$phpfile);//調(diào)用函數(shù),生成分頁HTML 和 SQL LIMIT 子句 $sql.=$getpageinfo['sqllimit'];//組合完整的SQL語句 $data = $row = array();//初始化數(shù)組 $result = mysql_query($sql,$db);//獲取結(jié)果集 //將數(shù)據(jù)裝入$data數(shù)組 while($row = mysql_fetch_array($result)){ $data[]=$row; } ?> <?php echo $getpageinfo['pagecode'];//顯示分頁的html代碼 ?>
經(jīng)典論壇交流: http://bbs.blueidea.com/thread-2875484-1-1.html
本文鏈接:http://m.95time.cn/tech/program/2008/6064.asp
出處:藍(lán)色理想
責(zé)任編輯:bluehearts
上一頁 頁碼自動適應(yīng)范圍 [1] 下一頁
◎進(jìn)入論壇網(wǎng)絡(luò)編程版塊參加討論
|