• <big id="iig5e"><em id="iig5e"></em></big>

  • <big id="iig5e"><em id="iig5e"></em></big>
    <th id="iig5e"><option id="iig5e"></option></th>
    <th id="iig5e"><option id="iig5e"></option></th>
    <th id="iig5e"><video id="iig5e"></video></th>

  • 景安微信
    右側QQ聯系不上,可以加我微信
    您好,歡迎來到景安網絡!
    加盟景安
    主頁 >服務器技術 >【匯總】比較全面的php分頁原理

    【匯總】比較全面的php分頁原理


    來源:景安網絡發表日期:2018-09-29瀏覽次數:Tags:php分頁
    景安網絡專業的數據中心服務商,長期提供數據中心托管服務,私有云,互聯網解決方案,互聯網增值服務。針對工信委大力實施“萬企業上云”計劃,景安以我所能,為你而+,推出上云特惠,核心云計算產品降幅達50%!!也歡迎來聊右側qq

    1、首先了解SQL語句中的limit用法

    SELECT * FROM table …… limit   開始位置 , 操作條數    (其中開始位置是從0開始的)
     

    例子:

    取前20條記錄:SELECT * FROM table …… limit  0 , 20
    從第11條開始取20條記錄:SELECT * FROM table …… limit   10 , 20

    php分頁

    LIMIT n 等價于 LIMIT 0,n。

    如select * from table LIMIT 5; //返回前5行,和 select * from table LIMIT 0,5一樣

     

    2、分頁原理

     所謂分頁顯示,也就是講數據庫中的結果集,一段一段顯示出來

    怎么分段,當前在第幾段 (每頁有幾條,當前再第幾頁)
    前10條記錄:select * from table limit 0,10
    第11至20條記錄:select * from table limit 10,10
    第21至30條記錄:select * from table limit 20,10
     
    分頁公式:
    (當前頁數 - 1 )X 每頁條數 , 每頁條數
    Select * from table limit ($Page- 1) * $PageSize, $PageSize
     
     

    3、$_SERVER["REQUEST_URI"]函數

    預定義服務器變量的一種,所有$_SERVER開頭的都叫做預定于服務器變量。

    REQUEST_URI的作用是取得當前URI,也就除域名外后面的完整的地址路徑。

    例子:

    當前頁為:http://www.test.com/home.php?id=23&cid=22

    echo $_SERVER["REQUEST_URI"]

    結果為:/home.php?id=23&cid=22

     

    4、parse_url()解析URL函數
     parse_url() 是講URL解析成有固定鍵值的數組的函數
     
    例子
    $ua=parse_url("http://username:password@hostname/path?arg=value#anchor");
    print_r($ua);
    結果:
    Array
    (
        [scheme] => http                ;協議
        [host] => hostname              ;主機域名
       [user] => username             ;用戶
        [pass] => password              ;密碼
        [path] => /path                 ;路徑
        [query] => arg=value            ;取參數
       [fragment] => anchor           ;
    )

     

     
    5、代碼實例
     這個一個留言的分頁,分為3個部分,一個是數據庫設計,一個是連接頁面,一個是顯示頁面。
    (1)設計數據庫
     設計數據庫名為bbs,有一個數據表為message,里面包含title,lastdate,user,content等字段,分別表示留言標題,留言日前,留言人,留言的內容
    (2)連接頁面
    <?php
    $conn = @ mysql_connect("localhost", "root", "123456") or die("數據庫鏈接錯誤");
    mysql_select_db("bbs", $conn);
    mysql_query("set names 'GBK'"); //使用GBK中文編碼;
    //將空格,換行轉換為HTML可解析
    function htmtocode($content) {
     $content = str_replace("\n", "<br>", str_replace(" ", "&nbsp;", $content)); //兩個str_replace嵌套
     return $content;
    }
    //$content=str_replace("'","‘",$content);
     //htmlspecialchars();
     
    ?>
    (3)顯示頁面
    <?php
     include("conn.php");
    $pagesize=2;       //設置每頁顯示2個記錄
    $url=$_SERVER["REQUEST_URI"];  
    $url=parse_url($url);
    $url=$url[path];

    $numq=mysql_query("SELECT * FROM `message`");
    $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>";
    }
    $SQL="SELECT * FROM `message` limit $page $pagesize ";
        $query=mysql_query($SQL);
     
      while($row=mysql_fetch_array($query)){
    ?>
    <table width=500 border="0" cellpadding="5" cellspacing="1" bgcolor="#add3ef">
      <tr bgcolor="#eff3ff">
      <td>標題:<?php echo $row[title]?></td> <td>時間:<?php echo $row[lastdate]?></td>
      </tr>
      <tr bgcolor="#eff3ff">
      <td> 用戶:<?php echo $row[user]?></td><td></td>
      </tr>
      <tr>
      <td>內容:<?php echo htmtocode($row[content]);?></td>
      </tr>
      <br>
    </table>
    <?php
      }
    ?>
    (4)最后顯示
    0(好文)
    0(太水)
    版權聲明:部分文章源于網絡,如侵權請聯系我們刪除
    買購快云Plus,云服務器折上折

    專題頁

    色播