php分頁執行個體程式函數

來源:互聯網
上載者:User

這是我自己寫的一個php分頁執行個體

 

 代碼如下 複製代碼

<html>
<head>
    <title>簡單的PHP分頁程式</title>
</head>
<body>
<?php
    //建立串連資料庫
    $linkID=@mysql_connect("itlobo.com","root","") or die("you could notconnect mysql");
    //串連的資料庫名稱
    @mysql_select_db("ceshi") or die("could not select database!");
    //取得記錄總數

    $query="SELECT count(*) FROM user";
    $rs = mysql_query($query);
    $myrows=mysql_fetch_array($rs);
    $numrows=$myrows[0];
    //設定每一頁顯示的記錄數
    $pagesize = 1;
    //計算總頁數
    $pages=intval($numrows/$pagesize);
    if($numrows%$pagesize)
    $pages++;
    //設定頁數
    if(isset($_POST['page']))
       $page=intval($_POST['page']);
    else{
         $page = 1; //沒有頁數則顯示第一頁;
        }
    //計算記錄位移量
    $offset = ($page-1)*$pagesize;
    //讀取指定的記錄數
    $query1="select * from user limit $offset,$pagesize";
    $rs = mysql_query($query1);
    if($myrows=mysql_fetch_array($rs))
    {
       $i = 0;  
?>
<table width="80%" border="1">
    <tr>
        <td width="50%">使用者名稱</td>
        <td width="50%">密碼</td>
    </tr>
    <?php
        do{
            $i++;
    ?>
    <tr>
        <td width="50%"><?php echo $myrows["username"] ?></td>
        <td width="50%"><?php echo $myrows["password"] ?></td>
    </tr>
    <?php
        }
        while($myrows=mysql_fetch_array($rs));
        echo "</table>";
    } 
        $first = 1;
        $prev =$page-1;
        $next = $page+1;
        $last=$pages;
        if($page>1)
        {
            echo "<a href='fenye.php?page=".$first."'>首頁</a>";
            echo "<a href='fenye.php?page=".$prev."'>上一頁</a>";
        }
        if($page<$pages)
        {
            echo "<a href='fenye.php?page=".$next."'>下一頁</a>";
            echo "<a href='fenye.php?page=".$last."'>最後一頁</a>";
        }
        echo "<div align = 'center'>共有" .$pages. "頁(" .$page. "/" .$pages.")";
        for($i=1; $i<$page; $i++)
            echo "<a href='fenye.php?page=".$i."'>[".$i."]</a>";
        echo "[" .$page. "]";
        for($i=$page+1; $i<=$pages;$i++)
            echo "<a href='fenye.php?page=".$i."'>[".$i."]</a>";
        echo"</div>";
    ?>      
</body>
</html>

上面代碼不能重複使用,後來整理了一個類

 代碼如下 複製代碼

#pages{display:block; text-align:center; overflow:hidden; color:#000; font-size:13px}
#pages a{color:#333; text-decoration:none; font-family:Verdana,Geneva,sans-serif; padding:2px 3px; display:block}
#pages li{float:left; display:inline-block; border:1px solid #999; margin-right:3px; margin-left:3px}
#pages #spages{background:#CCC; font-weight:bold; color:#36C}

PHP分頁函數類源碼:

 代碼如下 複製代碼

<?php
/*
* 分頁模組
*/

interface Page{
public function showpage();
}

class AdminPage implements Page{
/*
* 構造參數
* SQL語句,每頁顯示數,url
*/
private $sql;
private $pageline; //每頁顯示多少行資料
private $urlstr;
private $nowpage;
private $totalNum;
private $pageNum;
private $pageStr;// 形成分頁字串

public function __construct($sql,$p){
$this->sql = $sql;
$this->pageline = $p;
$this->urlstr = $_SERVER['SCRIPT_NAME'];
if(empty($_GET['p'])){
$this->nowpage = 1; //初始化當前頁數為1
}else if(is_numeric($_GET['p'])){
$this->nowpage = $_GET['p'];
}else{
$e = new Error(6);
$e->show();
}

$s = new Sql();
$this->totalNum = $s->results_exist_num($this->sql);
$this->pageNum = ceil($this->totalNum/$this->pageline);

}
/*
* 形式為:
* 首頁| 上一頁| 1 | 2 | 3 | 4 | 5 |下一頁 | 末頁
*
*
*/

public function showpage(){
if($this->pageNum >=1 && $this->nowpage <5 ){

if( $this->pageNum <=5){

$this->pageStr = '<ul id="pages"><li><a href="'.$this->urlstr.'?p=1" target="rframe" >首頁</a></li>';
if($this->nowpage!=1){
$this->pageStr .= '<li><a href="'.$this->urlstr.'?p='.($this->nowpage-1).'" target="rframe" >上一頁</a></li>';
}
for($i=1;$i<=$this->pageNum;$i++){
if($i==$this->nowpage){
$this->pageStr .='<li id="spages"><a href="'.$this->urlstr.'?p='.$i.'" target="rframe" >'.$i.'</a></li>';
}else{
$this->pageStr .='<li><a href="'.$this->urlstr.'?p='.$i.'" target="rframe" >'.$i.'</a></li>';
}
}
if($this->nowpage !=$this->pageNum){
$this->pageStr .= '<li><a href="'.$this->urlstr.'?p='.($this->nowpage+1).'" target="rframe" >下一頁</a></li>';
}

$this->pageStr .='<li><a href="'.$this->urlstr.'?p='.$this->pageNum.'" target="rframe" >末頁</a></li>';
echo $this->pageStr;

}else if($this->pageNum>5){

$this->pageStr = '<ul id="pages"><li><a href="'.$this->urlstr.'?p=1" target="rframe" >首頁</a></li>';
if($this->nowpage !=1){
$this->pageStr .= '<li><a href="'.$this->urlstr.'?p='.($this->nowpage-1).'" target="rframe" >上一頁</a></li>';
}

for($i=1;$i<=5;$i++){
if($i==$this->nowpage){
$this->pageStr .='<li id="spages"><a href="'.$this->urlstr.'?p='.$i.'" target="rframe" >'.$i.'</a></li>';
}else{
$this->pageStr .='<li><a href="'.$this->urlstr.'?p='.$i.'" target="rframe" >'.$i.'</a></li>';
}
}
if($this->nowpage !=$this->pageNum){
$this->pageStr .= '<li><a href="'.$this->urlstr.'?p='.($this->nowpage+1).'" target="rframe" >下一頁</a></li>';
}

$this->pageStr .='<li><a href="'.$this->urlstr.'?p='.$this->pageNum.'" target="rframe" >末頁</a></li>';
echo $this->pageStr;
}

}else if($this->nowpage <= $this->pageNum -2 && $this->nowpage>=5){
$this->pageStr = '<ul id="pages"><li><a href="'.$this->urlstr.'?p=1" target="rframe" >首頁</a></li>';
$this->pageStr .= '<li><a href="'.$this->urlstr.'?p='.($this->nowpage-1).'" target="rframe" >上一頁</a></li>';
for($i=$this->nowpage-2;$i<=$this->nowpage+2;$i++){
if($i==$this->nowpage){
$this->pageStr .='<li id="spages"><a href="'.$this->urlstr.'?p='.$i.'" target="rframe" >'.$i.'</a></li>';
}else{
$this->pageStr .='<li><a href="'.$this->urlstr.'?p='.$i.'" target="rframe" >'.$i.'</a></li>';
}
}
$this->pageStr .= '<li><a href="'.$this->urlstr.'?p='.($this->nowpage+1).'" target="rframe" >下一頁</a></li>';
$this->pageStr .='<li><a href="'.$this->urlstr.'?p='.$this->pageNum.'" target="rframe" >末頁</a></li>';
echo $this->pageStr;

}else if($this->nowpage>=$this->pageNum-3 && $this->nowpage <=$this->pageNum){

$this->pageStr = '<ul id="pages"><li><a href="'.$this->urlstr.'?p=1" target="rframe" >首頁</a></li>';
$this->pageStr .= '<li><a href="'.$this->urlstr.'?p='.($this->nowpage-1).'" target="rframe" >上一頁</a></li>';

for($i=$this->pageNum-4;$i<=$this->pageNum;$i++){
if($i==$this->nowpage){
$this->pageStr .='<li id="spages"><a href="'.$this->urlstr.'?p='.$i.'" target="rframe" >'.$i.'</a></li>';
}else{
$this->pageStr .='<li><a href="'.$this->urlstr.'?p='.$i.'" target="rframe" >'.$i.'</a></li>';
}
}
if($this->nowpage !=$this->pageNum){
$this->pageStr .= '<li><a href="'.$this->urlstr.'?p='.($this->nowpage+1).'" target="rframe" >下一頁</a></li>';
}

$this->pageStr .='<li><a href="'.$this->urlstr.'?p='.$this->pageNum.'" target="rframe" >末頁</a></li>';
echo $this->pageStr;

}
}
}

聯繫我們

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

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

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.