参考->原文
[铁人赛Day10]PHP简易分页实作
物件导向系列
PHP系列
【物件导向】PHP 物件导向 简易分页实作
javascript系列
【物件导向】javascript 物件导向概念 API (範例可玩)
物渐导向-基本概念
class 物件
class db{} //db叫作物件
public 公开属性
class db{ public $host //$host叫作属性}function __construct() 建构式(【成立】物件时要【预先】执行的方法)
class db{
function __construct(){
$this->八云();
}function 八云(){ echo $string = "橙" return $string;}function skill(){ echo $string = "化猫橙" return $string;}
}
一般页面使用方法
new 成立物件
$chen = new db;// $变数 = db类别名称$chen->skill();// 印出 化猫橙
物渐导向就这样。大概吧...?
物件导向概念结束
说明专区
工作流程->资料库(帐号、密码、连结的资料库)
//资料库连线class db{ //类别内的变数 public $host = '127.0.0.1'; //架设的网域 public $username = 'daniel'; //资料库帐号 public $password = '123456'; //资料库密码 public $database = 'ch21'; //资料库 public $result; //公开属性,function {$this->$result//内存取方式 }}//建构式 function __construct(){ $this->sql_connect(); $this->sql_database(); $this->set_db_encode(); }//设定连线 function sql_connect(){ return @mysql_connect($this->host,$this->username,$this->password); }//选择资料库 function sql_database(){ return @mysql_select_db($this->database); }//选择资料库语系 function set_db_encode(){ return mysql_query("SET NAMES 'utf8'"); }//主要使用方法 function query($sql_string){ $result = mysql_query($sql_string); //$sql_string(自订的SQL语法),$result = 资料库的物件 $query = new db_query($result); //进行 资料库的物件 转array$result = $query->result(); //进行object转array return $result; }
//资料库物件转阵列class db_query{ private $result; function __construct($result){ $this->result = $result;//DB查询->db_query->$result } function result(){ $query = array(); if($this->result != false){ while($row = mysql_fetch_object($this->result)){ $query[] = $row; } return $query; } return false; }}
//页码类别class pages{public $page_out = false; //测试印出public $per = 10; //每页显示数量public $data_nums = 0; //总笔数public $page = 0; //现在页数public $pages = 0; //总页数 function __construct(){ } function Page($sql_string){$sql = $sql_string; //自订的SQL$result = mysql_query($sql);//资料库物件$data_nums = mysql_num_rows($result); //统计总比数$per = $this->per; //每页显示项目数量$pages = ceil($data_nums/$per); //取得不小于值的下一个整数 /*如果没有输入 $_GET["page"] */if (!isset($_GET["page"])){$page=1;} else {$page = intval($_GET["page"] + 0);}$start = ($page-1)*$per; //每一页开始的资料序号 //Ex //SELECT * FROM class WHERE 1 LIMIT 0,10 //LIMIT x,y //x = 开始页 //y = 显示数量 $sql = $sql.' LIMIT '.$start.', '.$per;$result = mysql_query($sql) or die("Error"); //$This$this->data_nums = $data_nums;$this->page = $page;$this->pages = $pages; $query = new db_query($result);$result = $query->result(); return $result; }};$Pages = new pages;
其实【页码】就是在组合MYSQL字串而已...
说明专区结束
程式码複製区
下列为程式码完整部分...可直接複製使用...
採用于PHP物件导向,不影响你的程式码运作
<?php /*######DB.php######*/<?php //###时区修正date_default_timezone_set('Asia/Taipei');//资料库连线class db{ public $host = '127.0.0.1'; public $username = 'daniel'; public $password = '123456'; public $database = 'ch21'; public $result; function __construct(){ $this->sql_connect(); $this->sql_database(); $this->set_db_encode(); } function sql_connect(){ return @mysql_connect($this->host,$this->username,$this->password); } function sql_database(){ return @mysql_select_db($this->database); } function set_db_encode(){ return mysql_query("SET NAMES 'utf8'"); } function query($sql_string){ $result = mysql_query($sql_string); $query = new db_query($result);$result = $query->result(); return $result; }}//资料库物件转阵列class db_query{ private $result; function __construct($result){ $this->result = $result;//DB查询->db_query->$result } function result(){ $query = array(); if($this->result != false){ while($row = mysql_fetch_object($this->result)){ $query[] = $row; } return $query; } return false; }}$DB = new db;//页码类别class pages{public $page_out = false; //测试印出public $per = 10; //每页显示数量public $data_nums = 0; //总笔数public $page = 0; //现在页数public $pages = 0; //总页数 function __construct(){ } function Page($sql_string){$sql = $sql_string;$result = mysql_query($sql);$data_nums = mysql_num_rows($result); //统计总比数$per = $this->per; //每页显示项目数量$pages = ceil($data_nums/$per); //取得不小于值的下一个整数if (!isset($_GET["page"])){$page=1;} else {$page = intval($_GET["page"] + 0);}$start = ($page-1)*$per; //每一页开始的资料序号$sql = $sql.' LIMIT '.$start.', '.$per;$result = mysql_query($sql) or die("Error");//$This$this->data_nums = $data_nums;$this->page = $page;$this->pages = $pages;if(($this->page_out == true)){//分页页码echo '共 '.$data_nums.' 笔-在 '.$page.' 页-共 '.$pages.' 页';echo "<br /><a href=?page=1>首页</a> ";echo "第 ";for( $i=1 ; $i<=$pages ; $i++ ) {if ( $page-3 < $i && $i < $page+3 ) {echo "<a href=?page=".$i.">".$i."</a> ";}} echo " 页 <a href=?page=".$pages.">末页</a><br /><br />";} $query = new db_query($result);$result = $query->result(); return $result; }};$Pages = new pages;?><?php //###时区修正date_default_timezone_set('Asia/Taipei');//资料库连线class db{ public $host = '127.0.0.1'; public $username = 'daniel'; public $password = '123456'; public $database = 'ch21'; public $result; function __construct(){ $this->sql_connect(); $this->sql_database(); $this->set_db_encode(); } function sql_connect(){ return @mysql_connect($this->host,$this->username,$this->password); } function sql_database(){ return @mysql_select_db($this->database); } function set_db_encode(){ return mysql_query("SET NAMES 'utf8'"); } function query($sql_string){ $result = mysql_query($sql_string); $query = new db_query($result);$result = $query->result(); return $result; }}//资料库物件转阵列class db_query{ private $result; function __construct($result){ $this->result = $result;//DB查询->db_query->$result } function result(){ $query = array(); if($this->result != false){ while($row = mysql_fetch_object($this->result)){ $query[] = $row; } return $query; } return false; }}$DB = new db;//页码类别class pages{public $page_out = false; //测试印出public $per = 10; //每页显示数量public $data_nums = 0; //总笔数public $page = 0; //现在页数public $pages = 0; //总页数 function __construct(){ } function Page($sql_string){$sql = $sql_string;$result = mysql_query($sql);$data_nums = mysql_num_rows($result); //统计总比数$per = $this->per; //每页显示项目数量$pages = ceil($data_nums/$per); //取得不小于值的下一个整数if (!isset($_GET["page"])){$page=1;} else {$page = intval($_GET["page"] + 0);}$start = ($page-1)*$per; //每一页开始的资料序号$sql = $sql.' LIMIT '.$start.', '.$per;$result = mysql_query($sql) or die("Error");//$This$this->data_nums = $data_nums;$this->page = $page;$this->pages = $pages;if(($this->page_out == true)){//分页页码echo '共 '.$data_nums.' 笔-在 '.$page.' 页-共 '.$pages.' 页';echo "<br /><a href=?page=1>首页</a> ";echo "第 ";for( $i=1 ; $i<=$pages ; $i++ ) {if ( $page-3 < $i && $i < $page+3 ) {echo "<a href=?page=".$i.">".$i."</a> ";}} echo " 页 <a href=?page=".$pages.">末页</a><br /><br />";} $query = new db_query($result);$result = $query->result(); return $result; }};$Pages = new pages;?>
/*######index.php######*/<?php include("DB.php") ?> <?php //自己打SQL语法取法 $SQL = "SELECT * FROM class WHERE 1 LIMIT 0,10 ";$query = $DB->query($SQL);foreach($query as $key=>$row){echo $row->name.'<br/>';}echo "-------------------------------".'<br/>';//页码类别取法$SQL = "SELECT * FROM class WHERE 1";$Pages->page_out = true ;$query = $Pages->Page($SQL);foreach($query as $key=>$row){echo $row->name.'<br/>';} ?>
/*###### MYSQL资料库 ######*/idnamebirthdaymathenglishhistorytotaladdress_Laddress_R1李大华1997/3/79094922762陈小明1997/2/18288902603刘小珍1997/8/38987782544廖小敏1997/10/217580852405吴大龙1997/5/17637168202