本文章總結了目前常用的幾種分頁代碼,比如說上一頁,下一頁之類的,還有一種數字分頁,像1,2,3...之類的等.
分頁代碼如下:
- <?php
- //page當前頁,num每頁的頁數
- $page=isset($_GET['page'])?intval($_GET['page']):1;
- $num=5;
- $conn = mysql_connect('127.0.0.1','root','');
- if (!$conn) {
- die('Could not connect:'.mysql_error());
- }
- mysql_select_db('shop');
- //獲取記錄總數
- $total=mysql_num_rows(mysql_query("select * from user"));
- //計算頁數
- $pagenum=ceil($total/$num);
- //限制頁數不能超出范圍
- If($page>$pagenum || $page == 0){
- Echo 'Error : Can Not Found The page.';
- Exit;
- }
- //語句“Select * from table limit 0,10”從table表提取十條信息,0為起點,10為提取的數目
- //$offset為起點值,如當前頁為第一頁,每頁5條,起點即為0,同理當前為第二頁,起點將為5
- $offset=($page-1)*$num;
- $result=mysql_query("select * from user limit $offset,$num");
- while($it=mysql_fetch_array($result)){
- echo 'id:'.$it['id'].' name:'.$it['name'].'<br />';
- }
- //顯示鏈接頁面切換鏈接,當前頁無鏈接
- for($i=1;$i<=$pagenum;$i++){
- $show=($i!=$page)?"<a href='index.php?page=".$i."'>$i</a>":"<b>$i</b>";
- echo $show." ";
- }
- echo $total.'條記錄,每頁5條,共'.$pagenum.'頁';
- mysql_free_result($result);
- mysql_close($conn);
- ?>
實例2,代碼如下:
- <?
- //function.php 這里是主函數
- function php_page($page_dbname,$page_size,$page)
- {
- if ($page=="")
- {$page=1;};
- if ($ljjl=="")
- {$ljjl=0;};
- if($page)
- {
- //$page_dbname="tb_insert";
- //$page_size=4; //每頁顯示4條記錄
- $query="select count(*) as total from ".$page_dbname; //從數據庫中讀取數據
- $result=mysql_query($query);
- $message_count=mysql_result($result,0,"total"); //獲取總的記錄數
- $page_count=ceil($message_count/$page_size); //獲取總的頁數
- $offset=($page-1)*$page_size;
- $query="select * from ".$page_dbname." order by id desc limit $offset, $page_size";
- $result=mysql_query($query);
- //內容顯示 這里只是簡單的作個示范,可以按你的要求隨便改動。
- while ($myrow=@mysql_fetch_array($result))
- {
- echo $myrow[name]." | ".$myrow[number]." | ".$myrow[tel]." | ".$myrow[address]."<br><br>";
- }
- }
- echo "頁次:".$page."/";
- echo $page_count."頁 記錄:";
- echo $message_count."條"."<br>";
- if($page!=1)
- {
- echo "<a href=index.php?page=1>首頁</a> ";
- echo "<a href=index.php?page=".($page-1).">上一頁</a> ";
- }
- else
- {
- echo "首頁 ";
- echo "上一頁 ";
- }
- for($i=1; $i<=$page_count; $i++)
- {
- if ($page==$i)
- {echo $i." ";}
- else
- {echo "<a href=index.php?page=$i>$i</a> ";}
- }
- if($page<$page_count)
- {
- echo "<a href=index.php?page=".($page+1).">下一頁</a> ";
- echo "<a href=index.php?page=".$page_count.">尾頁</a>";
- }
- else
- {
- echo "下一頁 ";
- echo "尾頁";
- }
- }
- ?>
conn.php 連接數據庫,代碼如下:
- <?php
- $id=mysql_connect("localhost","root","root")or dir('連接失敗:' . mysql_error());
- //mysql_connect("IP","用戶名","密碼")
- if(mysql_select_db("db_database06",$id))
- echo "";
- else
- echo ('連接失敗:' . mysql_error());
- mysql_query("set names gb2312");
- ?>
主程序,將上面倆個文件包含進來,再調用一個php_page()就可完成分頁,代碼如下:
- <?php
- require_once("conn.php");
- require_once("function.php");
- php_page("tb_insert",3,$_GET[page]); // "tb_insert"是表名,3是在每頁要顯示的記錄數,$_GET[page]是page的id,直接用就可以了。
- ?>
上面的一種是文字分頁,比如說上一頁,下一頁之類的,還有一種數字分頁,像1,2,3...之類的,這個比較簡單,前者稍微復雜些,最后一種是他們2者結合,代碼如下:
- --> 1 //獲取當前頁數
- if(isset($_GET['page'])){
- $page = intval($_GET['page']);
- }
- else {
- $page=1;
- }
- $PageSize = 1; //每頁的記錄數量
- // 獲取總數量
- $sql = "select count(*) from blog";
- $result = mysql_query($sql);
- $row = mysql_fetch_row($result);
- $amount = $row[0];
- /*計算總頁數
- if($amount){
- if($amount<$PageSize) { //如果總數量小于每頁的記錄數量$PageSize,那么只有一頁.
- $PageCount = 1;
- }
- if($amount%$PageSize) { //總數量除以每頁的記錄數量取于
- $PageCount =& amp;nbsp;(int)($amount/$PageSize)+1;//如果有于,則頁數等于總數量除每頁的記錄數加1
- }
- else{
- $PageCount =& amp;nbsp;$amount/$PageSize;//沒有,則結果是頁數
- }
- }
- else{
- $PageCount = 0;
- }*/
- $PageCount = ceil($amount/$PageSize);//總頁數=總數量除以每頁數量 如果有小樹,則進位< span style="color: #008000;">
- if($Page>$PageCount|$page==0){// 如果當前頁數大于總頁數
- echo "不能發現此頁!";
- exit();
- }
- //翻頁鏈接
- $PageOut = '';
- if($page==1){//如果頁數只有一頁
- $PageOut .= '第一頁|上一頁';
- }
- else{
- $PageOut .= '<a href="index.php?page=1">第一頁& lt;/a>|<a href="index.php?page='.($page-1).'">上一頁</a>|';
- }
- if($page==$PageCount||$PageCount==0){//如果當前頁等于總也數
- $PageOut .= '下一頁|尾頁';
- }
- else{
- $PageOut .= '<a href="index.php?page='.($page+1).'">下一頁</a>|<a href="index.php?page='.$PageCount.'">尾頁</a>';
- }
- //獲取數據
- if($amount){
- $sql="select * from blog limit ".($page-1)*($PageSize).",$PageSize";
- $result=mysql_query($sql);
- while($row=mysql_fetch_array($result)){//此段代碼只是示例
- $blogs[] = array('bid'=>$row['bid'],'title'=>$row['title']);
- foreach ($blogs as $blog){
- $title=$blog['title'];
- }
- $output = "<a href=index.php?action=blog_del&bid=$blog[bid]>刪除</a>".
- "<a href=index.php?action=blog_edit&bid=$blog[bid]>編輯</a>".
- "<a href=index.php?action=blog_view&bid=$blog[bid]>查看</a>";
- include("template/default/blog.tpl.php");
- echo $PageOut;
- }
- for($i=1;$i<=$PageCount;$i++){//數字分頁
- $Pageshow = ($i!=$page)?"<a href='index.php?page=".$i."'>$i</a>":"<b>$i</b>";
- echo $PageShow;
- }
- echo $amount.'條記錄,每頁'.$PageSize.'條,共'.$PageCount.'頁';
- }
新聞熱點
疑難解答