PHP 常用模版-分頁(yè)顯示查詢所得結(jié)果
要點(diǎn):
1.統(tǒng)計(jì)返回結(jié)果數(shù)
2.單頁(yè)顯示結(jié)果數(shù)
創(chuàng)新互聯(lián)主要業(yè)務(wù)有網(wǎng)站營(yíng)銷策劃、成都做網(wǎng)站、成都網(wǎng)站建設(shè)、微信公眾號(hào)開(kāi)發(fā)、微信小程序開(kāi)發(fā)、H5建站、程序開(kāi)發(fā)等業(yè)務(wù)。一次合作終身朋友,是我們奉行的宗旨;我們不僅僅把客戶當(dāng)客戶,還把客戶視為我們的合作伙伴,在開(kāi)展業(yè)務(wù)的過(guò)程中,公司還積累了豐富的行業(yè)經(jīng)驗(yàn)、全網(wǎng)整合營(yíng)銷推廣資源和合作伙伴關(guān)系資源,并逐漸建立起規(guī)范的客戶服務(wù)和保障體系。
// 根據(jù)搜索結(jié)果呈現(xiàn)分頁(yè)效果
//函數(shù)1 查詢結(jié)果總數(shù)統(tǒng)計(jì)
function build_query($id) {
$search_query = "SELECT DISTINCT * FROM niao WHERE id = $id";
return $search_query;
}
//函數(shù)2 此函數(shù)基于當(dāng)前頁(yè)和頁(yè)數(shù)生成導(dǎo)航頁(yè)鏈接
function generate_page_links($id, $cur_page, $num_pages) {
$page_links = '';
// 如果此頁(yè)不是第一頁(yè),則生成“上一頁(yè)”鏈接
if ($cur_page > 1) {
$page_links .= '« ';
}
else {
$page_links .= ' ';
}
// 循環(huán)瀏覽生成頁(yè)碼鏈接的頁(yè)面
//考慮頁(yè)數(shù)可能太多導(dǎo)致的導(dǎo)航鏈接層疊 $cur_page 當(dāng)前頁(yè)碼
if($cur_page<8){//頁(yè)數(shù)少于5就從1~5排列頁(yè)鏈接
$i=1;
}
else{
$i= $cur_page-2; //大于5 考慮每頁(yè)保留前兩頁(yè)鏈接
}
$c_page = $cur_page;//當(dāng)前頁(yè)
$z_page = $c_page+6;//最大呈現(xiàn)頁(yè)數(shù)控制
for ($i; $i <= $num_pages && $c_page<=$z_page; $i++,$c_page++) {
if ($cur_page == $i) {
$page_links .= ''.$i.' ';
}
else {
$page_links .= ' ' . $i . ' ';
}
}
// 如果此頁(yè)不是最后一頁(yè),則生成“下一頁(yè)”鏈接
if ($cur_page < $num_pages) {
$page_links .= ' ';
}
else {
$page_links .= ' ';
}
return $page_links;
}
// 主程序部分
//GET驗(yàn)證 返回$id
require_once('get0.php');
// 計(jì)算分頁(yè)信息
//根據(jù)獲取的$_GET['page']判斷頁(yè)數(shù),如果未獲取設(shè)定為第一頁(yè)
$cur_page = isset($_GET['page']) ? $_GET['page'] : 1;
$results_per_page = 15; // 每頁(yè)結(jié)果數(shù)
//計(jì)算結(jié)果頁(yè)上頁(yè)第一行行號(hào)
$skip = (($cur_page - 1) * $results_per_page);
// 鏈接數(shù)據(jù)庫(kù)
require_once('sql.php');
$dbc = MySQLi_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME)
or die('Error connecting to MySQL server.');
// 查詢獲取結(jié)果總數(shù)
$query = build_query($id);
$result = mysqli_query($dbc, $query);
$total = mysqli_num_rows($result); //統(tǒng)計(jì)返回的結(jié)果總數(shù)
$num_pages = ceil($total / $results_per_page);//總數(shù)除以每頁(yè)結(jié)果數(shù),計(jì)算得頁(yè)數(shù),然后對(duì)結(jié)果向上取整數(shù)
//再次查詢獲取結(jié)果子集
$query = $query . " LIMIT $skip, $results_per_page";
$result = mysqli_query($dbc, $query);
while ($row = mysqli_fetch_array($result)) {
#循環(huán)顯示內(nèi)容
echo 'xxxx查詢結(jié)果';
}
// 判斷是否需要分頁(yè)
if ($num_pages > 1) {
echo'';
}
mysqli_close($dbc);
?>