php原生開發(fā)新聞?wù)局侣劻斜矸猪?/h1>
我們上一堂課要跟大家說了新聞清單的功能製作,上堂課中我們新聞清單頁下面有一個分頁功能!那我們今天就來跟大家介紹一下關(guān)於分頁實(shí)現(xiàn)的製作過程吧!
首先我們建立一個php檔案page.php,這個檔案裡面我們放製作分頁的程式碼!
第一步:一樣,就是連接資料庫!
// 顯示所有的錯誤
error_reporting(E_ALL & ~E_NOTICE );
// 連接mysql數(shù)據(jù)庫
$link = mysqli_connect('localhost','root', 'root');
if (!$link) {
echo "connect mysql error!";
exit();
}
// 選中數(shù)據(jù)庫 news為數(shù)據(jù)庫的名字
$db_selected = mysqli_select_db($link, 'news');
if (!$db_selected) {
echo "<br>selected db error!";
exit();
}
// 設(shè)置mysql字符集 為 utf8
$link->query("set names utf8");
第二步:分頁功能的實(shí)現(xiàn),在哪個清單裡我們就需要查詢哪個資料表,我們是新聞的分頁,那麼我們SQL語句就要查新聞的表
// 查詢新聞表中的數(shù)據(jù)
$sql = "select * from new where 1 "; // 查詢語句
$sql_count = "select count(*) as amount from new where 1 "; // 統(tǒng)計總記錄數(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è)定總頁數(shù),以及總頁碼
// 每頁的記錄條數(shù)
$page_size = 4;
// 總頁碼
$max_page = ceil( $amount / $page_size );
大家都知道分頁有個公式演算法,我們就根據(jù)這個公式來計算上一頁,下一頁,尾頁!
// 獲取當(dāng)前頁碼
$page = intval($_GET['page']); // 獲取page值,并轉(zhuǎn)成int
if( $page <= 0 || $page > $max_page){ // 如果page值小于0,或是大于最大頁碼
$page = 1;
}
// 上一頁
$pre_page = $page -1;
if( $pre_page < 1 ){ // 如果上一頁小于1
$pre_page = 1;
}
// 下一頁
$next_page = $page + 1;
if( $next_page > $max_page ){ // 如果下一頁大于最大頁碼
$next_page = $max_page;
}
// 分頁計算, 計算分頁的offset
$offset = ($page - 1 ) * $page_size;
$sql .= " limit $offset, $page_size ";
到這裡我們的分頁代碼就寫完了,然後在新聞列表頁引入這個分頁文件
<?php
include_once "../common/page.php";
?>
最後在新聞列表頁的下面找到分頁的位置,輸出分頁
<div class="pagelist">
<a href="new_list.php">首頁</a>
<?php
if( $page > 1 ){
?>
<a href="new_list.php?page=<?php echo $pre_page;?>">上一頁</a>
<?
}
if( $page < $max_page ){
?>
<a href="new_list.php?page=<?php echo $next_page;?>">下一頁</a>
<?
}
?>
<a href="new_list.php?page=<?php echo $max_page;?>">末頁</a>
/ 總頁碼 <font color="red"><?php echo $max_page;?></font>頁 當(dāng)前頁碼 <font color="red"><?php echo $page;?></font>頁
</div>

OK!分頁就製作完成了!
說明:這裡我的可能有點(diǎn)麻煩,大家也可以在網(wǎng)站下載分頁類,然後直接呼叫!但是你要知道分頁實(shí)現(xiàn)的原理~
我們上一堂課要跟大家說了新聞清單的功能製作,上堂課中我們新聞清單頁下面有一個分頁功能!那我們今天就來跟大家介紹一下關(guān)於分頁實(shí)現(xiàn)的製作過程吧!
首先我們建立一個php檔案page.php,這個檔案裡面我們放製作分頁的程式碼!
第一步:一樣,就是連接資料庫!
// 顯示所有的錯誤 error_reporting(E_ALL & ~E_NOTICE ); // 連接mysql數(shù)據(jù)庫 $link = mysqli_connect('localhost','root', 'root'); if (!$link) { echo "connect mysql error!"; exit(); } // 選中數(shù)據(jù)庫 news為數(shù)據(jù)庫的名字 $db_selected = mysqli_select_db($link, 'news'); if (!$db_selected) { echo "<br>selected db error!"; exit(); } // 設(shè)置mysql字符集 為 utf8 $link->query("set names utf8");
第二步:分頁功能的實(shí)現(xiàn),在哪個清單裡我們就需要查詢哪個資料表,我們是新聞的分頁,那麼我們SQL語句就要查新聞的表
// 查詢新聞表中的數(shù)據(jù) $sql = "select * from new where 1 "; // 查詢語句 $sql_count = "select count(*) as amount from new where 1 "; // 統(tǒng)計總記錄數(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è)定總頁數(shù),以及總頁碼
// 每頁的記錄條數(shù) $page_size = 4; // 總頁碼 $max_page = ceil( $amount / $page_size );
大家都知道分頁有個公式演算法,我們就根據(jù)這個公式來計算上一頁,下一頁,尾頁!
// 獲取當(dāng)前頁碼 $page = intval($_GET['page']); // 獲取page值,并轉(zhuǎn)成int if( $page <= 0 || $page > $max_page){ // 如果page值小于0,或是大于最大頁碼 $page = 1; } // 上一頁 $pre_page = $page -1; if( $pre_page < 1 ){ // 如果上一頁小于1 $pre_page = 1; } // 下一頁 $next_page = $page + 1; if( $next_page > $max_page ){ // 如果下一頁大于最大頁碼 $next_page = $max_page; } // 分頁計算, 計算分頁的offset $offset = ($page - 1 ) * $page_size; $sql .= " limit $offset, $page_size ";
到這裡我們的分頁代碼就寫完了,然後在新聞列表頁引入這個分頁文件
<?php include_once "../common/page.php"; ?>
最後在新聞列表頁的下面找到分頁的位置,輸出分頁
<div class="pagelist"> <a href="new_list.php">首頁</a> <?php if( $page > 1 ){ ?> <a href="new_list.php?page=<?php echo $pre_page;?>">上一頁</a> <? } if( $page < $max_page ){ ?> <a href="new_list.php?page=<?php echo $next_page;?>">下一頁</a> <? } ?> <a href="new_list.php?page=<?php echo $max_page;?>">末頁</a> / 總頁碼 <font color="red"><?php echo $max_page;?></font>頁 當(dāng)前頁碼 <font color="red"><?php echo $page;?></font>頁 </div>
OK!分頁就製作完成了!
說明:這裡我的可能有點(diǎn)麻煩,大家也可以在網(wǎng)站下載分頁類,然後直接呼叫!但是你要知道分頁實(shí)現(xiàn)的原理~