本文实例讲述了PHP中分页及sqlHelper类用法。分享给大家供大家参考,具体如下:
文档目录结构如下:
PHP;">
MysqLi=new MysqLi(self::$host,self::$user,self::$pwd,self::$db);
if($this->MysqLi->connect_error){
die("连接数据库失败! ".$this->MysqL->connect_error);
}
$this->MysqLi->query("set names utf8");
}
function execute_dql_all($sql){
//执行查询语句
$arr=array();
$this->result=$this->MysqLi->query($sql) or die ($this->MysqL->connect_error);
//将数据转存到$arr数组中
while($row=MysqLi_fetch_array($this->result,MysqL_BOTH)){
$arr[]=$row;
}
$this->result->free();
return $arr;
}
function execute_dql_num($sql){
//执行查询语句
$arr=array();
$this->result=$this->MysqLi->query($sql) or die ($this->MysqL->connect_error);
//将数据转存到$arr数组中
while($row=MysqLi_fetch_array($this->result,MysqLI_NUM)){
$arr[]=$row;
}
$this->result->free();
return $arr;
}
function execute_dql_assoc($sql){
//执行查询语句
$arr=array();
$this->result=$this->MysqLi->query($sql) or die ($this->MysqL->connect_error);
//将数据转存到$arr数组中
while($row=MysqLi_fetch_array($this->result,MysqLI_ASSOC)){
$arr[]=$row;
}
$this->result->free();
return $arr;
}
//查询某表中的记录数
function execute_dql_counts($table,$id="*"){
$this->sql="select count($id) from $table";
$this->result=$this->MysqLi->query($this->sql);
$row=MysqLi_fetch_all($this->result);
$this->result->free();
return $row[0][0];
}
function execute_dml($sql){
//执行正删改
$this->result=$this->MysqLi->query($sql);
if(!$this->result){
return -1;//执行正删改失败
}else{
if($this->MysqLi->affected_rows>0){
return 1;//执行正删改成功,影响行数
}else{
return 0;//执行正删改成功,但没有影响行数
}
}
}
}
PHP;">
sqlHelper=new sqlHelper();
$this->returnArr=array();
}
/*
* 参数说明
*
* $table 分页时对那个表的数据分页
* $id 辅助查询当前分页的数据表的总记录数
* $pageSize 每页显示多少条信息记录数
* $pagingSize 分页栏每次循环显示出来的个数
* $nowPage 当前是第几页,默认第一页
* $href 分页栏的超链接将要往哪里连接
*/
function paging_prev_next($table,$id="*",$pageSize,$pagingSize,$nowPage=1,$href){
$this->counts=$this->sqlHelper->execute_dql_counts($table,$id);
$this->pageCount=ceil($this->counts/$pageSize);
$this->returnArr["count"]=$this->counts;
$this->returnArr["start"]=($nowPage-1)*$pageSize;
$this->returnArr["limit"]=$pageSize;
if($nowPage>$this->pageCount || $nowPage<=0){
return false;
}
$t=(ceil($nowPage/$pagingSize)-1)*$pagingSize+1;
$pre=$nowPage-$pagingSize;
$nex=$nowPage+$pagingSize;
echo "
{$nowPage}/{$this->pageCount}
<";
for($i=$t;$i<$t+$pagingSize;$i++){
if($i*$pageSize>$this->pageCount*$pageSize){
break;
}else{
if($nowPage==$i){
echo "
{$i}";
}else{
echo "
{$i}";
}
}
}
echo "
>";
return $this->returnArr;
}
}
paging-list-link.css代码如下:
PHPStorm.
* User: lee
* Date: 13-7-27
* Time: 下午5:56
* To change this template use File | Settings | File Templates.
*/
.paging-list-a{
border:1px solid #b5b5af;
background-color:#efebed;
font-family: 'Meiryo UI';
font-size: 16px;
font-weight: 600;
padding: 0px 8px 0px 8px;
/*cursor: pointer;*/
text-decoration: none;
color: #292927;
}
.paging-list-a-withBg{
background-color: #1D92E2;
color: white;
}
PHP;">
paging_prev_next("city","ID",$meiyexiansi,$meiyelianjieshu,$nowPage,"usePaging.PHP");
//容错判断
if(!$receiveArr){
return;
}
//查询每页需要显示的数据,大小限制存在 $receiveArr 数组中
$sqlHelper=new sqlHelper();
$result=$sqlHelper->execute_dql_num("select * from city limit ".$receiveArr['start'].",".$receiveArr['limit']."");
echo "
"; print_r($result); echo ""; ?>
所使用的数据库为 MysqL5.6 所自带的 world 数据库
下面是运行的效果截图:
不过代码还有个 Bug 。就是翻页到最后的时候会出现显示不了,原因在于 Paging.PHP 文件的 41~43 行左右判断有问题。
$this->pageCount || $nowPage<=0){
return false;
}
更多关于PHP相关内容感兴趣的读者可查看本站专题:《》、《》、《》、《》、《》、《》及《PHP常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。