PHP+mysql分頁設計實例

效果如圖
一共三個文件:

hytz.php展示頁,不同的內容需要製作不同的展示頁

<?php //會議通知-首頁
    include ("menu.php");
    include ("head.php");
?>
<?php
    $keshi=$_SESSION["ywclkeshi"];                    
    $pagesql="select keshi,fw from hytz where keshi='$keshi' or fw=1";
    $pageresult=mysql_query($pagesql);    
    if ($pageresult)
    {
?>
<table width="80%" border="0" class="youbian" align="center" cellpadding="4" cellspacing="1">
    <caption><a href="index.php"><img src="images/home.png"class="t3"/></a>
    <a href="javascript:window.history.go(-1)"><img src="images/undo.png" width="32" height="32" class="t3"/></a>
    會議通知
</caption>    
      <thead>
      <tr class="touming">
        <th colspan="4" align="left">
        <a href="hytz_add.php"><img src="images/add.png" alt="" class="t2" border="0"/>添加</a>
        <a href="javascript:window.print();"><img src="images/printer.png" class="t2">打印</a>
        </th>
        </tr>
          <tr>
            <th width="7%">序號</th>
            <th width="72%">標題</th>
            <th width="14%">發佈日期</th>
        <?php    
            if($_SESSION['ywcljibie']=="科級")//如果是科長則顯示刪除
            {    
        ?>
            <th width="7%">刪除</th>
         <?php }?>
        </tr>
      </thead>
        <?php
            $totalnum=mysql_num_rows($pageresult);//取得記數總數
            
            include("pages.php");            
            $sql="select id,title,fbrq from hytz where (keshi='$keshi' or fw=1) order by id desc limit $startnum,$perpagenum";//讀取指定記錄數
            $i=$perpagenum*($page-1)+1;
            $result=mysql_query($sql);
            $numrows=mysql_num_rows($result);
            if ($numrows>0)
            {
                while($data=mysql_fetch_array($result))
                {
                    $count+=1;
                    $id=$data['id'];
                    $title=$data['title'];                        
                    $fbrq=$data['fbrq'];
                    
        ?>
                        <tr align="center" class="hx">
                               <td class="hx"><?php echo $count+($page-1)*$perpagenum;?></td>
                            <td align="left"><a href="hytz_show.php?id=<?php echo $id;?>"><?php echo $title;?></a></td>
                            <td>
                            <?php  //五天之內的通知紅色顯示
                                $jtrq=date('Y-m-d',time());
                                $xcrq=(strtotime($jtrq)-strtotime($fbrq))/86400;
                                if ($xcrq<5)
                                {
                                    echo "<font color=\"red\">$fbrq</font>";
                                }
                                else
                                {
                                    echo $fbrq;
                                }
                             ?></td>
                        <?php    
                                if($_SESSION['ywcljibie']=="科級")//如果是科長則顯示刪除
                            {    
        ?>
                            <td><a href="hytz_delete.php?id=<?php echo $id;?>"><img src="images/err.png" class="t1" border="0"/></a></td>
                        <?php }?>
                        </tr>
            <?php } ?>
                
        <?php } ?>
</table>
<?php
    include("pagesdh.php");
    }//最外層的$if ($totalnum>0)
?>

<?php
    include("foot.php");
?>



pages.php分頁用的,可重複使用

<?php //產生分頁與分頁導航pagesdh.php搭配使用
    //查詢數據庫中一共有多少條數據
    $perpagenum=10;//設置每一頁顯示的最大記錄數   
    $total= $totalnum;//獲取記錄總數
   
    if($_GET['page']=="")//給當前頁page賦值,如果未賦值則爲1
    {
    $page=1;
    }
    else
    {
    $page=$_GET['page'];
    }
   
    //獲得當前頁
    $startnum = ($page-1)*$perpagenum;//每頁的起始位置
   
    if($page>1)//給前一頁per賦值,如果大於1則減一,否則賦值1
        {$per=$page-1;}
    else
        {$per=1;}
       
    if($total%$perpagenum==0)//計算總頁數,用總記錄數除於每頁最大記數,如果整除的話則取商,如果不能整除則取商+1
        {$totalpage=$total/$perpagenum;}
    else
        {$totalpage=(integer)($total/$perpagenum)+1;}
       
    $next=$page+1;//給下一頁next賦值,正常爲+1,如果next大於總頁數則next賦值爲總頁數
    if($next>=$totalpage)
        {$next=$totalpage;}
?>



pagesdh.php分頁器底部,可以重複使用


<!--分頁導航與分頁pages.php搭配使用。超級鏈接的顯示樣式見zhpt.css的a.fy-->
<h2 align="center">

<?php
    if ($page!=1 and $totalpage!=1){
?>
    <a class="fy" href="<?php $_SERVER['PHP_SELF'];?>?page=1">首頁</a><!--首頁鏈接-->
<?php }?>

<?php
    if ($page>1){
?>
    <a class="fy" href="<?php $_SERVER['PHP_SELF'];?>?page=<?php echo $per;?>">上一頁</a><!--上一頁鏈接-->
  
<?php }?>

    <!--當前頁前面的所有頁面的數字鏈接-->
    <?php
    for ($i=1;$i<$page;$i++)
    {
    ?>
    <a class="fy" href="<?php $_SERVER['PHP_SELF'];?>?page=<?php echo $i;?>"> <?php echo $i;?> </a>
    <?php
    }
    ?>
   
    <!--當前頁頁碼-->
     <font color="#00AA00"><?php echo $page;?></font> 
   
    <!--當前頁後面的所有頁面的數字鏈接-->
    <?php
    for ($i=$page+1;$i<=$totalpage;$i++)
    {
    ?>
    <a class="fy" href="<?php $_SERVER['PHP_SELF'];?>?page=<?php echo $i;?>"> <?php echo $i;?> </a>
    <?php
    }
    ?>

<?php
    if ($page<$totalpage){
?>
    <a class="fy" href="<?php $_SERVER['PHP_SELF'];?>?page=<?php echo $next;?>">下一頁</a><!--下一頁-->
<?php }?>

<?php
    if ($page!=$totalpage and $totalpage!=1){
?>
    <a class="fy" href="<?php $_SERVER['PHP_SELF'];?>?page=<?php echo $totalpage;?>">尾頁</a><!--尾頁-->
<?PHP }?> 
        第<?php echo $page;?>/<?php echo $totalpage;?>頁     共<?php echo $total;?>條信息<!--第X/X頁,共X條信息->
</h2>


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章