用PHP3實現MySQL數據的分頁顯示

發表于:2007-07-14來源:作者:點擊數: 標簽:
建表及生成 測試 數據( mysql .sql): create table pagetest( idint unsigned not null primary key auto_increment, nametext not null ); insert into pagetest(name) values('您好,朋友,這是分頁測試數據!'); insert into pagetest(name) values('第2
建表及生成測試數據(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("無法與服務器斷開連接!");//斷開連接并釋放資源
    ?>

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97