php原生開(kāi)發(fā)新聞?wù)局侣劻斜矸猪?yè)
我們上一節(jié)課給大家講述了新聞列表的功能制作,上節(jié)課中我們新聞列表頁(yè)下面有一個(gè)分頁(yè)功能!那么我們今天就來(lái)給大家介紹一下關(guān)于分頁(yè)實(shí)現(xiàn)的制作過(guò)程!
首先我們創(chuàng)建一個(gè)php文件page.php,這個(gè)文件里面我們放制作分頁(yè)的代碼!
第一步:一樣,就是連接數(shù)據(jù)庫(kù)!
// 顯示所有的錯(cuò)誤 error_reporting(E_ALL & ~E_NOTICE ); // 連接mysql數(shù)據(jù)庫(kù) $link = mysqli_connect('localhost','root', 'root'); if (!$link) { echo "connect mysql error!"; exit(); } // 選中數(shù)據(jù)庫(kù) news為數(shù)據(jù)庫(kù)的名字 $db_selected = mysqli_select_db($link, 'news'); if (!$db_selected) { echo "<br>selected db error!"; exit(); } // 設(shè)置mysql字符集 為 utf8 $link->query("set names utf8");
第二步:分頁(yè)功能的實(shí)現(xiàn),在哪個(gè)列表里我們就需要查詢(xún)哪個(gè)數(shù)據(jù)表,我們是新聞的分頁(yè),那么我們SQL語(yǔ)句就要查新聞的表
// 查詢(xún)新聞表中的數(shù)據(jù) $sql = "select * from new where 1 "; // 查詢(xún)語(yǔ)句 $sql_count = "select count(*) as amount from new where 1 "; // 統(tǒng)計(jì)總記錄數(shù) $sql .= "order by id asc";
接著就是獲取總記錄條數(shù):
// 獲取總記錄條數(shù) $result_amount = mysqli_query($link, $sql_count); $arr_amount = mysqli_fetch_array(mysqli_query($link, $sql_count), MYSQL_ASSOC); // 總記錄條數(shù) $amount = $arr_amount['amount'];
然后設(shè)置總頁(yè)數(shù),以及總頁(yè)碼
// 每頁(yè)的記錄條數(shù) $page_size = 4; // 總頁(yè)碼 $max_page = ceil( $amount / $page_size );
大家都知道分頁(yè)有個(gè)公式算法,我們就根據(jù)這個(gè)公式來(lái)計(jì)算上一頁(yè),下一頁(yè),尾頁(yè)!
// 獲取當(dāng)前頁(yè)碼 $page = intval($_GET['page']); // 獲取page值,并轉(zhuǎn)成int if( $page <= 0 || $page > $max_page){ // 如果page值小于0,或是大于最大頁(yè)碼 $page = 1; } // 上一頁(yè) $pre_page = $page -1; if( $pre_page < 1 ){ // 如果上一頁(yè)小于1 $pre_page = 1; } // 下一頁(yè) $next_page = $page + 1; if( $next_page > $max_page ){ // 如果下一頁(yè)大于最大頁(yè)碼 $next_page = $max_page; } // 分頁(yè)計(jì)算, 計(jì)算分頁(yè)的offset $offset = ($page - 1 ) * $page_size; $sql .= " limit $offset, $page_size ";
到這里我們的分頁(yè)代碼就寫(xiě)完了,然后在新聞列表頁(yè) 引入這個(gè)分頁(yè)文件
<?php include_once "../common/page.php"; ?>
最后在新聞列表頁(yè)的下面找到分頁(yè)的位置,輸出分頁(yè)
<div class="pagelist"> <a href="new_list.php">首頁(yè)</a> <?php if( $page > 1 ){ ?> <a href="new_list.php?page=<?php echo $pre_page;?>">上一頁(yè)</a> <? } if( $page < $max_page ){ ?> <a href="new_list.php?page=<?php echo $next_page;?>">下一頁(yè)</a> <? } ?> <a href="new_list.php?page=<?php echo $max_page;?>">末頁(yè)</a> / 總頁(yè)碼 <font color="red"><?php echo $max_page;?></font>頁(yè) 當(dāng)前頁(yè)碼 <font color="red"><?php echo $page;?></font>頁(yè) </div>
OK!分頁(yè)就制作完成了!
說(shuō)明:這里我的可能有點(diǎn)麻煩,大家也可以在網(wǎng)站下載分頁(yè)類(lèi),然后直接調(diào)用!但是你要知道分頁(yè)實(shí)現(xiàn)的原理~