1. 程式人生 > >PHP練手小demo實現分頁

PHP練手小demo實現分頁

建立表語句

CREATE TABLE `guestbook` (
  `id` mediumint(8) unsigned NOT NULL auto_increment,
  `nickname` char(15) NOT NULL default '',
  `email` varchar(100) NOT NULL default '',
  `content` text NOT NULL,
  `createtime` int(10) unsigned NOT NULL default '0',
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT
CHARSET=utf8 AUTO_INCREMENT=1 ;

插入資料

insert into guestbook (`id`,`nickname`,`email`,`content`,`createtime`) values('1',  'admin',    '[email protected]',  '留言測試', '1264167501');
insert into guestbook (`id`,`nickname`,`email`,`content`,`createtime`) values('2',  'user', '[email protected]
'
, '大家好', '1264168127');
insert into guestbook (`id`,`nickname`,`email`,`content`,`createtime`) values('3', '小明', '[email protected]', '做得好,繼續努力。。', '1264168865'); insert into guestbook (`id`,`nickname`,`email`,`content`,`createtime`) values('4', '小張', '[email protected]', '來看看', '1264169118'
);
insert into guestbook (`id`,`nickname`,`email`,`content`,`createtime`) values('5', '小麗', '[email protected]', 'haha', '1283276566'); insert into guestbook (`id`,`nickname`,`email`,`content`,`createtime`) values('6', 'Tom', '[email protected]', 'Hello', '1283336218'); insert into guestbook (`id`,`nickname`,`email`,`content`,`createtime`) values('7', 'Jack', '[email protected]', 'okok', '1283336315'); insert into guestbook (`id`,`nickname`,`email`,`content`,`createtime`) values('8', 'admin', '[email protected]', '嗯嗯', '1283336315'); insert into guestbook (`id`,`nickname`,`email`,`content`,`createtime`) values('9', '阿里巴巴', '[email protected]', '來看看', '1283337158'); insert into guestbook (`id`,`nickname`,`email`,`content`,`createtime`) values('10', '路人甲', '[email protected]', '哈哈哈', '1283338228');

原始碼

<?php
    $host = 'localhost';
    $username = 'root';
    $password = '';
    $dbname = 'test';
    $port = '';

    $link = new mysqli($host,$username,$password,$dbname);
    if($link->connect_error){
        die('Connect Error('.$linlk->connect_erron.')'.$link->connect_error);
    }
    $link->set_charset("utf8");
    //每頁顯示的留言數
    $pageSize = 4;

    //確定當前頁數$p 引數
    $p = isset($_GET['p']) ? $_GET['p'] : 1;
    //資料指標
    $offset = ($p-1)*$pageSize;

    //查詢本頁顯示的資料
    $query_sql = "select * from guestbook order by id desc limit $offset,$pageSize";
    // echo $query_sql;
    $result = $link->query($query_sql);
    if($result){
          while($gblist = $result->fetch_array(MYSQLI_ASSOC)){
            echo '<a href="',$gblist['nickname'],'">',$gblist['nickname'],'</a> ';
            echo '發表於:',date("Y-m-d H:i", $gblist['createtime']),'<br />';
            echo '內容:',$gblist['content'],'<br /><hr />';
          }
    }

    //分頁格式
    $count_sql = "select count(*) as count from guestbook";
    $count_result = $link->query($count_sql);
    $count_array = $count_result->fetch_assoc();
    $count = $count_array['count'];
    //計算總的頁數
    $pagenum = ceil($count/$pageSize);
    echo '共',$count,'條留言';

    //迴圈輸出各頁數目及連線
    if($pagenum > 1){
        for($i=1;$i<=$pagenum;$i++){
            if($i == $p){
                echo "[$i]";
            }else{
                echo "[<a href='oPagenate.php?p=$i"."'>$i</a>]";
            }
        }
    }