<?php
header('content-type:text/html;charset=utf-8');
//php中header的總結
class?Sep_page{
????private?$page?=?3;
????private?$ip?=?'localhost',$db_name?=?'root',$db_pass?=?'199486',$db_table?=?null;
????
????
????public?function?__construct($config?=?array()){
????????$this->page?=?$config['page'];
????????$this->ip?=?$config['ip'];
????????$this->db_name?=?$config['db_name'];
????????$this->db_pass?=?$config['db_pass'];
????????$this->db_table?=?$config['db_table'];
????}
????public?function?judge_page(){
????????$page?=?$this->page;
????????
????????$para?=?self::connect_mysqli();??//類中方法調(diào)用方法用self
????????//print_r($para['rows'][0]['id']);
????????$total_page?=?ceil($para['total']/10);
????????//得到總頁數(shù)
????????$p1?=?$page?-?1;
????????$p2?=?$page?+?1;
????????//上下頁的URL傳參
????????$start?=?1;
????????$end?=?$total_page;
????????//初始化開始,結束頁
????????$show_page?=?5;
????????//頁面顯示數(shù)字按鈕數(shù)
????????$offset_page?=?($show_page-1)/2;
????????//點擊按鈕左右按鈕的數(shù)量
????????$page_banner?=?"";
????????//通過字符串拼接分頁
????????if($page?>?1){
????????????$page_banner.=?"<li><a?href='".$_SERVER['PHP_SELF']."?id=1'>首頁</a></li>";
????????????$page_banner.=?"<li><a?href='".$_SERVER['PHP_SELF']."?id=$p1'>上一頁</a></li>";
????????}
????????//$_SERVER['PHP_SELF']???顯示當前文件路徑
????????//頁數(shù)大一1才顯示首頁和上一頁????judge/判斷
????????if($total_page?>?$show_page){
????????????//先判斷總頁數(shù)與顯示頁數(shù)的關系
????????????if($page>$offset_page){
????????????????//開始的頁碼為頁數(shù)減去偏移量
????????????????$start?=?$page?-?$offset_page;
????????????????$end?=?$total_page>$page+$offset_page?$page+$offset_page:$total_page;
????????????}else{
????????????????$start?=?1;
????????????????$end?=?$show_page;
????????????}
????????????if($page+$offset_page>$total_page){
????????????????$start?=?$start?-?($page?+?$offset_page?-?$total_page);
????????????}
????????}
????????for($i?=?$start;$i<=$end;$i++){
????????????$page_banner?.="<li><a?href='".$_SERVER['PHP_SELF']."?id=$i'>$i</a></li>";
????????}
????????if($page?<?$total_page){
????????????$page_banner.="<li><a?href='".$_SERVER['PHP_SELF']."?id=$p2'>下一頁</a></li>";
????????????$page_banner.=?"<li><a?href='".$_SERVER['PHP_SELF']."?id=$total_page'>尾頁</a></li>";
????????}//頁數(shù)小于總頁數(shù)才顯示尾頁和下一頁
????????$page_banner.="<li>共{$total_page}頁</li>";
????????$response?=?array('rows'?=>?$para['rows'],?'$string'=>$page_banner);
????????return?$response;
????}
????private?function?connect_mysqli(){
????????
????????$mysqli?=?new?mysqli($this->ip,$this->db_name,$this->db_pass,$this->db_table);
????????$sql?=?"SELECT?*?FROM?page?LIMIT?".(($this->page-1)*10).",10";
????????//var_dump($this->mysqli);
????????//echo?"<hr>";
????????//echo?$sql;
????????
????????$mysqli_result?=?$mysqli->query($sql);
????????//var_dump($mysqli_result);
????????while($row?=?$mysqli_result->fetch_assoc()){
????????????$rows[]?=?$row;
????????}
????????//var_dump($row);
????????//var_dump($rows);
????????$sql_count?=?"SELECT?COUNT(*)?FROM?page";
????????//得到數(shù)據(jù)表數(shù)據(jù)總數(shù)
????????$mysqli_result?=?$mysqli->query($sql_count);
????????$row?=?$mysqli_result->fetch_array();
????????//print_r($row);??//$row返回的是一個關聯(lián)加索引的數(shù)組,第一項就存儲的數(shù)據(jù)總數(shù),因此需要$row[0]來取
????????$total?=?$row[0];
????????$return?=?array('rows'?=>?$rows,?'total'=>$total);
????????return?$return;
????}
}
$config?=?$arrayName?=?array('page'=>$_GET['id'],'ip'=>?'localhost','db_name'=>'root','db_pass'=>'199486','db_table'=>'article');
$weidapao?=?new?Sep_page($config);
//print_r($rows?=?$weidapao->judge_page());
$rows?=?$weidapao->judge_page();
$number?=?$rows['rows']
//print_r($weidapao->connect_mysqli());
?>
<!DOCTYPE?html>
<html?lang="en">
<head>
????<meta?charset="UTF-8">
????<title></title>
????<link?rel="stylesheet"?
??????????>
</head>
<body>
<table?class="table?table-striped">
????<?php?foreach($number?as?$row):??>
????<tr>
????????<td><?php?echo?$row['id'];??></td>
????????<td><?php?echo?$row['username'];??></td>
????</tr>
????<?php?endforeach;?>
</table>
<ul?class="pagination">
????<?php?echo?$rows['$string'];?>
</ul>
</body>
</html>測試是沒有問題的,但是我覺得肯定有細節(jié)問題需要改進,希望有人能提出怎么改,為什么,具體代碼,謝謝
添加回答
舉報
0/150
提交
取消