當前位置:首頁 » 編程語言 » php分頁封裝

php分頁封裝

發布時間: 2023-01-07 15:18:23

『壹』 Thinkphp數組分頁如何操作

第一種:利用Page類和limit方法
$User = M('User'); // 實例化User對象
import('ORG.Util.Page');// 導入分頁類
$count = $User->where('status=1')->count();// 查詢滿足要求的總記錄數
$Page = new Page($count,25);// 實例化分頁類 傳入總記錄數和每頁顯示的記錄數
$show = $Page->show();// 分頁顯示輸出
// 進行分頁數據查詢 注意limit方法的參數要使用Page類的屬性
$list = $User->where('status=1')->order('create_time')->limit($Page->firstRow.','.$Page->listRows)->select();
$this->assign('list',$list);// 賦值數據集
$this->assign('page',$show);// 賦值分頁輸出
$this->display(); // 輸出模板

第二種:分頁類和page方法的實現
$User = M('User'); // 實例化User對象
// 進行分頁數據查詢 注意page方法的參數的前面部分是當前的頁數使用 $_GET[p]獲取
$list = $User->where('status=1')->order('create_time')->page($_GET['p'].',25')->select();
$this->assign('list',$list);// 賦值數據集
import(「ORG.Util.Page」);// 導入分頁類
$count = $User->where('status=1')->count();// 查詢滿足要求的總記錄數
$Page = new Page($count,25);// 實例化分頁類 傳入總記錄數和每頁顯示的記錄數
$show = $Page->show();// 分頁顯示輸出
$this->assign('page',$show);// 賦值分頁輸出
$this->display(); // 輸出模板

帶入查詢條件
如果是POST方式查詢,如何確保分頁之後能夠保持原先的查詢條件呢,我們可以給分頁類傳入參數,方法是給分頁類的parameter屬性賦值:
import('ORG.Util.Page');// 導入分頁類
$mapcount = $User->where($map)->count();// 查詢滿足要求的總記錄數
$Page = new Page($count,25);// 實例化分頁類 傳入總記錄數和每頁顯示的記錄數
//分頁跳轉的時候保證查詢條件
foreach($map as $key=>$val) {
$Page->parameter .= "$key=".urlencode($val).'&';
}
$show = $Page->show();// 分頁顯示輸出

『貳』 PHP中,類的封裝,調用問題

<?
class Page{
function 分頁函數(參數){
$perNumber = 2;
$page = $_GET['page'];
$count = mysql_query("select count(*) from people");
$rs = mysql_fetch_array($count);
$totalNumber = $rs[0];
$totalPage = ceil($totalNumber/$perNumber);
if(!isset($page)){
$page = 1;
}
$startCount = ($page-1)*$perNumber;
$result = mysql_query("select * from people limit $startCount,$perNumber");
$num = mysql_numrows($result);

for($i=0;$i<$num;$i++){
$a = mysql_result($result,$i,"id");
$b = mysql_result($result,$i,"name");
$c = mysql_result($result,$i,"age");
echo "<br />".$a."<br />".$b."<br />".$c."<br />";
}

}
}

?>

『叄』 php使用封裝的分頁代碼,為什麼就是循環不出來資料庫表的數據!求大神能指導一下,感謝!

你先列印$myrow這個變數看看是什麼樣子的

『肆』 求PHP各種分頁方法,各位大仙有的別藏了~~

PHP分頁方法:
第一步創建一個類 subPages.php<?php
class SubPages{

private $each_disNums;//每頁顯示的條目數
private $nums;//總條目數
private $current_page;//當前被選中的頁
private $sub_pages;//每次顯示的頁數
private $pageNums;//總頁數
private $page_array = array();//用來構造分頁的數組
private $subPage_link;//每個分頁的鏈接
private $subPage_type;//顯示分頁的類型
//__construct是SubPages的構造函數,用來在創建類的時候自動運行. //@$each_disNums 每頁顯示的條目數 // @nums 總條目數 // @current_num 當前被選中的頁 //@sub_pages 每次顯示的頁數 // @subPage_link 每個分頁的鏈接 //@subPage_type 顯示分頁的類型 //當@subPage_type=1的時候為普通分頁模式 example: 共4523條記錄,每頁顯示10條,當前第1/453頁 [首頁] [上頁] [下頁] [尾頁] //當@subPage_type=2的時候為經典分頁樣式 example: 當前第1/453頁 [首頁] [上頁] 1 2 3 4 5 6 7 8 9 10 [下頁] [尾頁]
function __construct($each_disNums,$nums,$current_page,$sub_pages,$subPage_link,$subPage_type){
//intval通過使用特定的進制轉換(默認是十進制),返回變數 var 的 integer 數值
$this->each_disNums=intval($each_disNums);
$this->nums=intval($nums);
if(!$current_page){
$this->current_page=1;
}else{
$this->current_page=intval($current_page);
}
$this->sub_pages=intval($sub_pages);
$this->pageNums=ceil($nums/$each_disNums);
$this->subPage_link=$subPage_link;
$this->show_SubPages($subPage_type);
//echo $this->pageNums."--".$this->sub_pages;
}

//__destruct析構函數,當類不在使用的時候調用,該函數用來釋放資源
function __destruct(){
unset($each_disNums);
unset($nums);
unset($current_page);
unset($sub_pages);
unset($pageNums);
unset($page_array);
unset($subPage_link);
unset($subPage_type);
}

//show_SubPages函數用在構造函數裡面。而且用來判斷顯示什麼樣子的分頁
function show_SubPages($subPage_type){
if($subPage_type == 1){
$this->subPageCss1();
}elseif ($subPage_type == 2){
$this->subPageCss2();
}
}

//用來給建立分頁的數組初始化的函數。
function initArray(){
for($i=0;$i<$this->sub_pages;$i++){
$this->page_array[$i]=$i;
}
return $this->page_array;
}

//construct_num_Page該函數使用來構造顯示的條目
// 即使:[1][2][3][4][5][6][7][8][9][10]
function construct_num_Page(){
if($this->pageNums < $this->sub_pages){
$current_array=array();
for($i=0;$i<$this->pageNums;$i++){
$current_array[$i]=$i+1;
}
}else{
$current_array=$this->initArray();
if($this->current_page <= 3){
for($i=0;$i<count($current_array);$i++){
$current_array[$i]=$i+1;
}
}elseif ($this->current_page <= $this->pageNums &&$this->current_page > $this->pageNums - $this->sub_pages +1 ){
for($i=0;$i<count($current_array);$i++){
$current_array[$i]=($this->pageNums)-($this->sub_pages)+1+$i;
}
}else{
for($i=0;$i<count($current_array);$i++){
$current_array[$i]=$this->current_page-2+$i;
}
}
}

return $current_array;
}

//構造普通模式的分頁
//共4523條記錄,每頁顯示10條,當前第1/453頁 [首頁] [上頁] [下頁] [尾頁]
function subPageCss1(){
$subPageCss1Str="";
$subPageCss1Str.="共".$this->nums."條記錄,";
$subPageCss1Str.="每頁顯示".$this->each_disNums."條,";
$subPageCss1Str.="當前第".$this->current_page."/".$this->pageNums."頁 ";
if($this->current_page > 1){
$firstPageUrl=$this->subPage_link."1";
$prewPageUrl=$this->subPage_link.($this->current_page-1);
$subPageCss1Str.="[<a href='$firstPageUrl'>首頁</a>] ";
$subPageCss1Str.="[<a href='$prewPageUrl'>上一頁</a>] ";
}else {
$subPageCss1Str.="[首頁] ";
$subPageCss1Str.="[上一頁] ";
}

if($this->current_page < $this->pageNums){
$lastPageUrl=$this->subPage_link.$this->pageNums;
$nextPageUrl=$this->subPage_link.($this->current_page+1);
$subPageCss1Str.=" [<a href='$nextPageUrl'>下一頁</a>] ";
$subPageCss1Str.="[<a href='$lastPageUrl'>尾頁</a>] ";
}else {
$subPageCss1Str.="[下一頁] ";
$subPageCss1Str.="[尾頁] ";
}

echo $subPageCss1Str;

}

//構造經典模式的分頁
//當前第1/453頁 [首頁] [上頁] 1 2 3 4 5 6 7 8 9 10 [下頁] [尾頁]
function subPageCss2(){
$subPageCss2Str="";
$subPageCss2Str.="當前第".$this->current_page."/".$this->pageNums."頁 ";

if($this->current_page > 1){
$firstPageUrl=$this->subPage_link."1";
$prewPageUrl=$this->subPage_link.($this->current_page-1);
$subPageCss2Str.="[<a href='$firstPageUrl'>首頁</a>] ";
$subPageCss2Str.="[<a href='$prewPageUrl'>上一頁</a>] ";
}else {
$subPageCss2Str.="[首頁] ";
$subPageCss2Str.="[上一頁] ";
}

$a=$this->construct_num_Page();
for($i=0;$i<count($a);$i++){
$s=$a[$i];
if($s == $this->current_page ){
$subPageCss2Str.="[<span style='color:red;font-weight:bold;'>".$s."</span>]";
}else{
$url=$this->subPage_link.$s;
$subPageCss2Str.="[<a href='$url'>".$s."</a>]";
}
}

if($this->current_page < $this->pageNums){
$lastPageUrl=$this->subPage_link.$this->pageNums;
$nextPageUrl=$this->subPage_link.($this->current_page+1);
$subPageCss2Str.=" [<a href='$nextPageUrl'>下一頁</a>] ";
$subPageCss2Str.="[<a href='$lastPageUrl'>尾頁</a>] ";
}else {
$subPageCss2Str.="[下一頁] ";
$subPageCss2Str.="[尾頁] ";
}
echo $subPageCss2Str;
}
}
?>要做分頁的頁面<?php//每頁顯示的條數
$page_size=2;
//得到當前是第幾頁
$pageCurrent=$_GET["p"];
$offet =($pageCurrent-1)*$page_size;
//建立資料庫連接
$conn = mysql_connect("地址","用戶名","密碼") or die("".mysql_error());
//設置字元集
mysql_query("set names gbk");
//設置資料庫
mysql_select_db("資料庫名",$conn) or die("".mysql_error());
if($conn) { include ("query.html");

//查詢會員信息//注:這里的sql查詢了兩遍.第一遍是確定查詢出來的總數據條數
$query_sql = "SELECT * FROM user_info_t order by id desc";//第二遍是根據需要即$page_size來確定每次查出的條數
$query_sql_sec= "SELECT * FROM user_info_t order by id desc limit $offet,$page_size";

//執行查詢語句 返回一個結果集
$query_res = mysql_query($query_sql,$conn);
$query_res_sec = mysql_query($query_sql_sec,$conn);
//查詢列數
//$query_cols = mysql_num_fields($query_res);
//查詢行數
$query_num =mysql_num_rows($query_res);
//返回根據從結果集取得的行生成的數組,如果沒有更多行
echo "<table border='0' cellpadding='1' cellspacing='2' width='100%' bgcolor='#FFFFFF'>";
while($query_row = mysql_fetch_array($query_res_sec)) {
echo "<tr>";
for ($i=0;$i<$query_cols;$i++) {

echo "<td bordercolor='#A2BEE1' bgcolor='#A2BEE1' width='8%'>".$query_row[$i]."</td>\n";
}
echo "<td bordercolor='#A2BEE1' bgcolor='#A2BEE1' width='8%'>";
//echo "<input type='button' class='button' id='modify_record' name='modify_record' value='修改' />";
echo"<button onClick=\"submit(location.href='../modify/modify.php?rec_id=$query_row[0]');\"class=\"button\";>修改</button>";
//echo "<ahref='../delete/delete.php?rec_id=$query_row[0]'onClick=\"if(confirm('確實要刪除此條記錄嗎?')) return true;else returnfalse;\"><img src=\"../image/delete.gif\" align=\"absmiddle\"/>刪除</a>";
echo "<buttononClick=\"if(confirm('確實要刪除此條記錄嗎?')) return submit(location.href='../delete/delete.php?rec_id=$query_row[0]');else return false;\"class=\"button\";>刪除</button>";
echo "</td>";
echo "</tr>";
}
//echo "</form>";
echo "</table>";
require_once("../common/subPages.php");//總條目數為資料庫中查詢出的數據條數
$nums=$query_num;
//每次顯示的頁數
$sub_pages=10; //if(!$pageCurrent) $pageCurrent=1;
//調用類SubPages 傳的參數為:每頁顯示條數/當前第幾頁/每次顯示的頁數/分頁模式
$subPage=new SubPages($page_size,$nums,$pageCurrent,$sub_pages,"query.php?p=",1);

}else{
die('資料庫連接異常: '.mysql_error());
}
//斷開資料庫連接
if ($conn)
{
mysql_close($conn);
}
?>

『伍』 PHP如何實現分頁顯示

【文件名】: c_mysql_page.inc // 【作 用】: MySQL分頁函數類 // 【作 者】: 天灰 // // 【最後修改日期】: 2001/07/16[cxx] // 【變數定義規則】:『C_』=字元型,『I_』=整型,『N_』=數字型,『L_』=布爾型,『A_』=數組型 //------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------ // ※c_mysql_page() 構造函數,設置分頁初始參數 // ※page_standard() 分頁顯示函數(標准型) // ※GetRecordStartEnd() 獲得取記錄的開始結束位置 // ※getmaxpage() 獲得記錄集的最大頁數 // ※checkpage() 檢查當前頁數是否在0和最大頁數之間 //------------------------------------------------------------------------------------------ class c_mysql_page { //------------------------------------------------------------------------------------------ // 變數定義 //------------------------------------------------------------------------------------------ var $I_pagesize = 10; //每頁記錄數 var $C_width = '80%'; //表格寬度 //------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------ // 函數名:c_mysql_page ($I_pagesize, $c_width) // 作 用:構造函數,設置分頁初始參數 // 參 數:$I_pagesize, $c_width // 返回值:變數 // 備 註:構造函數隨著類的建立而自動執行 //------------------------------------------------------------------------------------------ function c_mysql_page ($I_pagesize=10, $C_width='80%') { if (isset($I_pagesize)){$this -> I_pagesize = $I_pagesize;} if (isset($C_width)){$this -> C_width = $C_width;} } //------------------------------------------------------------------------------------------ // 函數名:page_standard($I_sumrecord,$C_page,$C_url="self",$C_otherpara="") // 作 用:分頁顯示函數(標准型) // 參 數:$I_sumrecord 記錄總數 // $C_url URL // $C_page URL後的參數 // $C_otherpara URL後的參數2 // $bgcolor 表格的背景顏色 // 返回值: // 備 註:無 //------------------------------------------------------------------------------------------ function page_standard($I_sumrecord,$C_page,$C_url="self",$C_otherpara="",$bgcolor="") { //檢查參數 if ((!$I_sumrecord) || (!$C_page)){AlertExit("參數不全!");} global $PHP_SELF,$$C_page; //全局變數$C_page //檢測$I_pagesize是否合法 if($this -> I_pagesize < 1){AlertExit("請設定每頁的記錄數!");} if($I_sumrecord < 1){return false;} //檢測總記錄數 if($C_url == "self"){$C_url = $PHP_SELF;} //設置URL $I_page = $$C_page; //重新賦當前頁值 $I_maxpage = $this -> getmaxpage($I_sumrecord); //取出總頁數 $I_page = $this -> checkPage($I_maxpage,$I_page); //檢查當前頁號 //顯示表 echo ""; echo ""; echo "共" . $I_sumrecord. "條主題 當前第" . $I_page . "/". $I_maxpage. "頁"; if ($I_maxpage > 1) { echo ""; if($I_page > 1 && $I_page < $I_maxpage) { echo "首頁"; $pre=$I_page-1; echo "上頁"; $next=$I_page+1; echo "下頁"; echo "末頁"; } elseif($I_page == 1) { $next = $I_page+1; echo "下頁"; echo "末頁"; } elseif($I_page == $I_maxpage) { echo "首頁"; $pre=$I_page-1; echo "上頁"; } //顯示select echo "轉到"; echo "";//OnChange=".WindowLocation($C_url,$C_otherpara,$C_page)." for($i=1;$i I_pagesize; $I_pagesize = $this -> I_pagesize; } //------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------ // 函數名:getmaxpage($intRecordNum) // 作 用:獲得記錄集的最大頁數 // 參 數:$I_sumrecord 記錄總數 // 返回值:最大頁數$I_maxpage(整型) // 備 註:無 //------------------------------------------------------------------------------------------ function getmaxpage($I_sumrecord) { if (!$I_sumrecord){AlertExit("參數不全!>

『陸』 文章內容太長在php中如何做分頁

在編輯器中插入分頁符號
例如 ##分頁##
使用PHP 的explode方法 分割
$pages = explode("##分頁##",$html);
獲得總頁數
$count=count($pages);
獲取第一頁
$html = $pages[0];

『柒』 php封裝一個用戶類,裡面有登錄注冊方法,這個要怎麼寫

第一步:login.php

//登陸方法
public function login(){
//如果用戶名和密碼為空,則返回登陸頁面
if(empty($_POST['username']) || empty($_POST['password'])){
$data['verifycode'] = rand(1000,9999);//生成一個四位數字的驗證碼
//將驗證碼放入session中,注意:參數是數組的格式
$this->session->set_userdata($data);
//注意:CI框架默認模板引擎解析的模板文件中變數不需要$符號
//$this->parser->parse("admin/login",$data);
//smarty模板變數賦值
$this->tp->assign("verifycode",$data['verifycode']);
//ci框架在模板文件中使用原生態的PHP語法輸出數據
//$this->load->view('login',$data);//登陸頁面,注意:參數2需要以數組的形式出現
//顯示smarty模板引擎設定的模板文件
$this->tp->display("admin/login.php");
}else{
$username = isset($_POST['username'])&&!empty($_POST['username'])?trim($_POST['username']):'';//用戶名
$password = isset($_POST['password'])&&!empty($_POST['password'])?trim($_POST['password']):'';//密碼
$verifycode = isset($_POST['verifycode'])&&!empty($_POST['verifycode'])?trim($_POST['verifycode']):'';//驗證碼

//做驗證碼的校驗
if($verifycode == $this->session->userdata('verifycode')){
//根據用戶名及密碼獲取用戶信息,注意:參數2是加密的密碼
$user_info=$this->user_model->check_user_login($username,md5($password));
if($user_info['user_id'] > 0){
//將用戶id、username、password放入cookie中
//第一種設置cookie的方式:採用php原生態的方法設置的cookie的值
//setcookie("user_id",$user_info['user_id'],86500);
//setcookie("username",$user_info['username'],86500);
//setcookie("password",$user_info['password'],86500);
//echo $_COOKIE['username'];

//第二種設置cookie的方式:通過CI框架的input類庫
$this->input->set_cookie("username",$user_info['username'],3600);
$this->input->set_cookie("password",$user_info['password'],3600);
$this->input->set_cookie("user_id",$user_info['user_id'],3600);
//echo $this->input->cookie("password");//適用於控制器
//echo $this->input->cookie("username");//適用於控制器
//echo $_COOKIE['username'];//在模型類中可以通過這種方式獲取cookie值
//echo $_COOKIE['password'];//在模型類中可以通過這種方式獲取cookie值

//第三種設置cookie的方式:通過CI框架的cookie_helper.php函數庫文件
//這種方式不是很靈驗,建議大家採取第二種方式即可
//set_cookie("username",$user_info['username'],3600);
//echo get_cookie("username");

//session登陸時使用:將用戶名和用戶id存入session中
//$data['username']=$user_info['username'];
//$data['user_id']=$user_info['user_id'];
//$this->session->set_userdata($data);

//跳轉到指定頁面
//注意:site_url()與base_url()的區別,前者帶index.php,後者不帶index.php
header("location:".site_url("index/index"));
}
}else{
//跳轉到登陸頁面
header("location:".site_url("common/login"));
}
}
}
}

第二步:User_model.php

//cookie登陸:檢測用戶是否登陸,如果cookie值失效,則返回false,如果cookie值未失效,則根據cookie中的用戶名和密碼從資料庫中獲取用戶信息,如果能獲取到用戶信息,則返回查詢到的用戶信息,如果沒有查詢到用戶信息,則返回0
public function is_login(){
//獲取cookie中的值
if(empty($_COOKIE['username']) || empty($_COOKIE['password'])){
$user_info = false;
}else{
$user_info=$this->check_user_login($_COOKIE['username'],$_COOKIE['password']);
}
return $user_info;
}

//根據用戶名及加密密碼從資料庫中獲取用戶信息,如果能獲取到,則返回獲取到的用戶信息,否則返回false,注意:密碼為加密密碼
public function check_user_login($username,$password){
//這里大家要注意:$password為md5加密後的密碼
//$this->db->query("select * from ");
//快捷查詢類的使用:能為我們提供快速獲取數據的方法
//此數組為查詢條件
//注意:關聯數組
$arr=array(
'username'=>$username,//用戶名
'password'=>$password,//加密密碼
'status'=>1 //賬戶為開啟狀態
);
//在database.php文件中已經設置了數據表的前綴,所以此時數據表無需帶前綴
$query = $this->db->get_where("users",$arr);
//返回二維數組
//$data=$query->result_array();
//返回一維數組
$user_info=$query->row_array();
if(!empty($user_info)){
return $user_info;
}else{
return false;
}
}

第三步:其它控制器:

public function __construct(){

//調用父類的構造函數
parent::__construct();
$this->load->library('tp'); //smarty模板解析類
$this->load->helper('url'); //url函數庫文件
$this->load->model("user_model");//User_model模型類實例化對象
$this->cur_user=$this->user_model->is_login();
if($this->cur_user === false){
header("location:".site_url("common/login"));
}else{
//如果已經登陸,則重新設置cookie的有效期
$this->input->set_cookie("username",$this->cur_user['username'],3600);
$this->input->set_cookie("password",$this->cur_user['password'],3600);
$this->input->set_cookie("user_id",$this->cur_user['user_id'],3600);
}

$this->load->library('pagination');//分頁類庫
$this->load->model("role_model");//member_model模型類
$this->load->model("operation_model");//引用operation_model模型
$this->load->model("object_model");//引用object_model模型
$this->load->model("permission_model");//引用permission_model模型
}

『捌』 如何理解PHP的分頁呢,我覺得PHP的分頁很難學。 有沒有老師,給講一下分頁的原理和如何理解分頁呢。

echo "共 $num 條<a href=$url?page=0>首頁</a> <a href=$url?page=".($pageval-1).">上一頁</a> <a href=$url?page=".($pageval+1).">下一頁</a><a href=$url?page=".ceil($num/$pagesize).">尾頁</a>";

首頁的頁碼當然是0了 ceil取整.如果有小數+1..ceil($num/$pagesize)得到尾頁頁碼 差不多就是這樣了 不過我沒測試過 你試試吧
另外,團IDC網上有許多產品團購,便宜有口碑

熱點內容
sql創建鏈接 發布:2025-07-08 00:08:38 瀏覽:398
ftp上傳中斷 發布:2025-07-08 00:08:37 瀏覽:641
linux雲計算課程 發布:2025-07-08 00:07:23 瀏覽:23
安卓網易雲怎麼發布歌曲 發布:2025-07-07 23:42:29 瀏覽:626
安卓內存讀取腳本 發布:2025-07-07 23:42:19 瀏覽:871
python27漢化 發布:2025-07-07 23:42:18 瀏覽:721
源碼鎖屏 發布:2025-07-07 23:26:52 瀏覽:944
手機版編程軟體 發布:2025-07-07 22:57:22 瀏覽:122
linux下執行sh腳本 發布:2025-07-07 22:49:00 瀏覽:127
雲盤怎麼存儲資料 發布:2025-07-07 22:49:00 瀏覽:915