<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                **最近整理了一下項目中用到的一些分頁組件,將其封裝起來(可以說1.0版本),希望大俠們多提提意見,來,先看一下運行效果** ![](https://box.kancloud.cn/0510d21c7f7818f684f668ef4c283376_727x340.gif) 樣式可能不是太美觀,不過我已將樣式與功能分離,這樣大家就可以根據自己的需要的風格定義樣式了,先說下我這個組件的**優點:** ** **1.將分頁與數據綁定合在一個文件輸出** 2**.靈活性高:不局限于某一個表,我們可以通過傳表名來獲取不同的結果,表內字段名完全自動識別** **3.可以按照條件查詢數據** **4.每頁顯示的條數也只是一個參數** **下面看一下代碼** ~~~ <?php include("../Common/connectDB.php"); //分頁函數 //$page要提交的頁面 //$adj要查詢的頁面兩邊各放幾個按鈕 //$limit每頁要顯示的條數 //$table查詢的表名 //$sql 要執行的查詢語句 //$arrayTitle 數據綁定每列的標題 必須和下面的每列的列名對應 //$arrayColName 數據表中要顯示的列名,當為xg1125時表示修改,sc1125刪除 //$strwhere查詢的where條件 //$sort用于保存查詢條件的值 //$addPage 添加,修改時要跳轉的頁面 function echoPage($fname,$adj,$limi,$table,$sql,$arrayTitle,$arrayColName,$strwhere,$sort,$addPage) //傳一個要顯示的字段數組 { $tbl_name=$table; //要查詢的表名 // 要查詢的頁面兩邊各放幾個按鈕 $adjacents = $adj; $query = "SELECT COUNT(*) as num FROM $tbl_name".$strwhere; $total_pages = mysql_fetch_array(mysql_query($query)); @$total_pages = $total_pages[num];//得到總條數 /* Setup vars for query. */ $targetpage = $fname; //將要進行分頁的頁面用來向該文件傳遞參數 $limit = $limi; //每頁顯示多少條數據 if(isset($_GET['page'])) $page = $_GET['page']; //要顯示的那一頁 else $page=1; if($page) $start = ($page - 1) * $limit; //first item to display on this page,本頁的第一條數據位置 else $start = 0; //if no page var is given, set start to 0 如果沒有傳遞參數值,則默認為0 /* Get data. */ $sql = $sql .$strwhere. "order by addDate desc LIMIT $start, $limit " ; //echo $sql; $result = mysql_query($sql); /* Setup page vars for display. */ if ($page == 0) $page = 1; //if no page var is given, default to 1. 如果沒有提供頁數則為當前頁 $prev = $page - 1; //previous page is page - 1 前一頁的頁號 $next = $page + 1; //next page is page + 1 下一頁的頁號 $lastpage = ceil($total_pages/$limit); //lastpage is = total pages / items per page, rounded up. 最后一頁 $lpm1 = $lastpage - 1; //last page minus 1 倒數第二頁 /* Now we apply our rules and draw the pagination object. We're actually saving the code to a variable in case we want to draw it more than once. */ $pagination = "";//保存前臺顯示按鈕 //分頁邏輯 if($lastpage > 1)//如果頁數大于1進行分頁 { $pagination .= "<div class=\"pagination\">"; //previous button 上一頁 if ($page > 1) $pagination.= "<a href=\"$targetpage?sort=$sort&page=$prev\">? previous</a>"; else $pagination.= "<span class=\"disabled\">? previous</span>"; //pages if ($lastpage < 7 + ($adjacents * 2)) //頁面小于13頁,全部顯示 { for ($counter = 1; $counter <= $lastpage; $counter++) { if ($counter == $page) $pagination.= "<span class=\"current\">$counter</span>"; else $pagination.= "<a href=\"$targetpage?sort=$sort&page=$counter\">$counter</a>"; } } elseif($lastpage > 5 + ($adjacents * 2)) //頁面大于11頁隱藏部分分頁 { //close to beginning; only hide later pages if($page < 1 + ($adjacents * 2)) //如果分頁值為7一下的顯示方式 { for ($counter = 1; $counter < 4 + ($adjacents * 2); $counter++)//顯示1搭配9 { if ($counter == $page) $pagination.= "<span class=\"current\">$counter</span>"; else $pagination.= "<a href=\"$targetpage?sort=$sort&page=$counter\">$counter</a>"; } $pagination.= "..."; $pagination.= "<a href=\"$targetpage?sort=$sort&page=$lpm1\">$lpm1</a>"; $pagination.= "<a href=\"$targetpage?sort=$sort&page=$lastpage\">$lastpage</a>"; } //in middle; hide some front and some back elseif($lastpage - ($adjacents * 2) > $page && $page > ($adjacents * 2))//如果分頁值離左右邊界的距離都大于6 { $pagination.= "<a href=\"$targetpage?sort=$sort&page=1\">1</a>"; $pagination.= "<a href=\"$targetpage?sort=$sort&page=2\">2</a>"; $pagination.= "..."; for ($counter = $page - $adjacents; $counter <= $page + $adjacents; $counter++)//則顯示分頁值為中心左邊6個右邊6個 { if ($counter == $page) $pagination.= "<span class=\"current\">$counter</span>"; else $pagination.= "<a href=\"$targetpage?sort=$sort&page=$counter\">$counter</a>"; } $pagination.= "..."; $pagination.= "<a href=\"$targetpage?sort=$sort&page=$lpm1\">$lpm1</a>"; $pagination.= "<a href=\"$targetpage?sort=$sort&page=$lastpage\">$lastpage</a>"; } //close to end; only hide early pages else { $pagination.= "<a href=\"$targetpage?sort=$sort&page=1\">1</a>"; $pagination.= "<a href=\"$targetpage?sort=$sort&page=2\">2</a>"; $pagination.= "..."; for ($counter = $lastpage - (2 + ($adjacents * 2)); $counter <= $lastpage; $counter++) { if ($counter == $page) $pagination.= "<span class=\"current\">$counter</span>"; else $pagination.= "<a href=\"$targetpage?sort=$sort&page=$counter\">$counter</a>"; } } } //next button if ($page < $counter - 1) $pagination.= "<a href=\"$targetpage?sort=$sort&page=$next\">next ?</a>"; else $pagination.= "<span class=\"disabled\">next ?</span>"; $pagination.= "</div>\n"; } //實現綁定數據功能 echo "<table id='mytable' cellspacing='0'>"; echo '<tr>'; //echo"<th class='hide'>ID</th>"; //echo'<th>標題</th>'; //echo'<th>類型</th>'; //echo'<th>發布時間</th>'; //echo'<th>點擊次數</th>'; //echo'<th>修改</th>'; //echo'<th>刪除</th>'; foreach($arrayTitle as $title) { echo'<th>'.$title.'</th>'; } echo '</tr>'; //在下面的循環里可以稍微加點邏輯 while($row=@mysql_fetch_array($result)) { echo '<tr>'; foreach($arrayColName as $col) { if($col=='title') echo "<td><a href='#'>".$row['title']."</a></td>"; else if($col=='xg1125') echo "<td><a href='$addPage".$row['id']."'>修改</a></td>"; else if($col=='sc1125') echo "<td><a href='$targetpage?sort=$sort&delid=".$row['id']."' onclick=\"if (confirm('刪除之后將無法恢復,確定要刪除嗎?')) return true; else return false;\" >刪除</a></td>"; else echo "<td>".$row[$col]."</td>"; //正常情況下的輸出 } //echo "<td>".$row['ID']."</td>"; //echo "<td><a href='#'>".$row['title']."</a></td>"; //echo "<td>.".$row['sort']."</td>"; //echo "<td>.".$row['Date']."</td>"; //echo "<td>".$row['click']."</td>"; //echo "<td><a href='#'>修改</a></td>"; //echo "<td><a href='#'>刪除</a></td>"; echo '</tr>'; } echo "</table>"; echo $pagination; } ?> ~~~ **下面看一下調用方法 調用很簡單只是根據情況傳遞參數** ** ~~~ $page='ManageNews.php';//要提交的頁面 $adj=3;//要查詢的頁面兩邊各放幾個按鈕 $limit=10;//每頁要顯示的條數 $table='news';//查詢的表名 $strwhere=" where sort="."'".$sort."'"; //查詢的where 條件 $addPage='AddNews.php?newid=';//添加要跳轉的頁面 $sql="SELECT id, title, addDate, (CASE sort WHEN '0' THEN '科技新聞' WHEN '1' THEN '最新活動' WHEN '2' THEN '技術服務' WHEN '3' THEN '誠聘英才' END ) AS sort, click FROM `news`" ; //要執行的查詢語句 $arrayTitle=array('編號','標題','類型','發布時間','點擊次數','修改','刪除');//數據綁定每列的標題 必須和下面的每列的列名對應 $arrayColName=array('id','title','sort','addDate','click','xg1125','sc1125');//數據表中要顯示的列名,當為xg1125時表示修改,sc1125刪除 echoPage($page,$adj,$limit,$table,$sql,$arrayTitle,$arrayColName,$strwhere,$sort,$addPage); ~~~ **以上就是我整理的分頁邏輯,自己發現的問題:健壯性有待提高,我會盡快的完善一下,希望大家能夠多提提意見,小弟不勝感激,我定會虛心接受。**
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看