例子:用PHP3實現MySQL資料的分頁顯示

來源:互聯網
上載者:User
mysql|分頁|資料|顯示 建表及產生測試資料(mysql.sql):
    create table pagetest(
        id     int unsigned not null primary key auto_increment,
        name   text not null
    );
    insert into pagetest(name) values('您好,朋友,這是分頁測試資料!');
    insert into pagetest(name) values('第2條');
    insert into pagetest(name) values('第3條');
    insert into pagetest(name) values('第4條');
    insert into pagetest(name) values('第5條');
    insert into pagetest(name) values('第6條');
    insert into pagetest(name) values('第7條');
    insert into pagetest(name) values('第8條');
    insert into pagetest(name) values('第9條');
    insert into pagetest(name) values('第10條');
    insert into pagetest(name) values('第11條');
    insert into pagetest(name) values('第12條');
    insert into pagetest(name) values('第13條');

顯示程式(mysql.php3):
    <?
    $pagesize = 2;//每頁顯示2條記錄
    
    $server = mysql_pconnect("localhost","test","test") or die("無法串連到localhost主機上的MySQL資料庫伺服器!");//以test帳號、test密碼串連localhost主機上的MySQL資料庫
    $db = mysql_select_db("test") or die("無法串連到test資料庫!");

    $sql = "select count(*) as total from pagetest";//產生查詢記錄數的SQL語句
    $rst = mysql_query($sql) or die("無法執行SQL語句:$sql !");//查詢記錄數
    $row = mysql_fetch_array($rst) or die("沒有更多的記錄!");//取出一條記錄
    $rowcount = $row["total"];//取出記錄數
    mysql_free_result($rst) or die("無法釋放result資源!");//釋放result資源

    $pagecount = bcdiv($rowcount+$pagesize-1,$pagesize,0);//算出總共有幾頁

    if(!isset($pageno)) $pageno = 1;//在沒有設定pageno時,預設為顯示第1頁
    if($pageno<1) $pageno = 1;//若pageno比1小,則把它設定為1
    if($pageno>$pagecount) $pageno = $pagecount;//若pageno比總共的頁數大,則把它設定為最後一頁

    if($pageno>0){
       $href = eregi_replace("%2f","/",urlencode($PHP_SELF));//把$PHP_SELF轉換為可以在URL上使用的字串,這樣的話就可以處理中文目錄或中文檔案名稱
       if($pageno>1){//顯示上一頁的褳接
          echo '<a href="' . $href . '?pageno=' . ($pageno-1) . '">上一頁</a>  ';
       }
       else{
          echo '上一頁  ';
       }
       for($i=1;$i<$pageno;$i++){
          echo '<a href="' . $href . '?pageno=' . $i . '">' . $i . '</a>  ';
       }
       echo $pageno . '  ';
       for($i++;$i<=$pagecount;$i++){
          echo '<a href="' . $href . '?pageno=' . $i . '">' . $i . '</a>  ';
       }
       if($pageno<$pagecount){//顯示下一頁的褳接
          echo '<a href="' . $href . '?pageno=' . ($pageno+1) . '">下一頁</a>  ';
       }
       else{
          echo '下一頁  ';
       }

       $offset = ($pageno-1) * $pagesize;//算出本頁第一條記錄在整個表中的位置(第一條記錄為0)
       $sql = "select * from pagetest LIMIT $offset,$pagesize";//產生查詢本頁資料的SQL語句
       $rst = mysql_query($sql);//查詢本頁資料
       $num_fields = mysql_num_fields($rst);//取得欄位總數
       $i = 0;
       while($i<$num_fields){//取得所有欄位的名字
          $fields[$i] = mysql_field_name($rst,$i);//取得第i+1個欄位的名字
          $i++;
       }
       echo '<table border="1" cellspacing="0" cellpadding="0">';//開始輸出表格
       echo '<tr>';
       reset($fields);
       while(list(,$field_name)=each($fields)){//顯示欄位名稱
          echo "<th>$field_name</th>";
       }
       echo '</tr>';
       while($row=mysql_fetch_array($rst)){//顯示本頁資料
          echo '<tr>';
          reset($fields);
          while(list(,$field_name)=each($fields)){//顯示每個欄位的值
             $field_value = $row[$field_name];
             if($field_value==""){
                echo '<td> </td>';
             }
             else{
                echo "<td>$field_value</td>";
             }
          }
          echo '</tr>';
       }
       echo '</table>';//表格輸出結束
       mysql_free_result($rst) or die("無法釋放result資源!");//釋放result資源
    }
    else{
       echo "目前該表中沒有任何資料!";
    }

    mysql_close($server) or die("無法與伺服器中斷連線!");//中斷連線並釋放資源
    ?>



相關文章

Beyond APAC's No.1 Cloud

19.6% IaaS Market Share in Asia Pacific - Gartner IT Service report, 2018

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。