php分页可利用表格来分页类
* 在新建对象时需要的变量:$query(从数据表中获取记录数的sql语句),$page(当前页码),$maxline(每页几行)) * 1、showpage方法:如果上面创建对象的$query正确,直接调用,即可输出分页信息 * 2、showtable方法:需要的变量:$query(从数据库读取记录的SQL语句,不要加Limit,因为在方法中已经添加)
代码如下 | 复制代码 |
/* | |
* 3、showresult方法:根据提交的$query中的SQL,直接将$result资源返回,表格可以自己定义
* 示例:
//获取当前页,并定义每页最大行
$page=1;
$maxline="10";
if(!empty($_GET["page"])){
$page=$_GET["page"];
}
//定义计算表内数据总数的SQL语句,这里必须和下面的$query是同一个表和条件,创建对象,输出页码和表格
$query="select count(*) from mailbox";
$a=new PageList($query, $maxline, $page);
$a->showpage();
//这里显示列表,需要和上面的SQL语句一样的条件
$query="select username,name,quota,created,modified,active from mailbox order by created desc";
echo "
* */
class PageList{
private $link;
private $result;
private $maxline;
private $page=1;
private $startline=0;
private $countline;
public $countpage;
private $prevpage;
private $nextpage;
//数据库联接,需要修改为您自己的地址
private $dbhost=DBHOST;
private $dbuser=DBUSER;
private $dbpasswd=DBPASSWD;
private $dbtable=DBTABLE;
/*
* 构造函数中建立数据库联接
* 1、数据库连接的4个参数设置为常量 记录在config.php页面中
* 2、连接数据库,并选择数据库
* 3、设置数据库执行的编码方式为utf8
* 4、将接收到的$maxline,$page两个变量赋值给类属性,成为该类通用属性
* (其中$query是count(*)的SQL,和下面方法中的query是不一样的)
* 5、根据新建对象时递交的$query语句,对数据库执行查询,将得到的总记录数赋值到类属性中$this->countline
* 将总记录数/每页行数,再用ceil函数高位取整,得到总页数并赋值到类属性中$this->countpage
* 6、根据递交的当前页码$page,算出前后页的数字$this->prevpage和$this->nextpage
* 还有必须算出数据库读取的起始行$this->startline
* 这里分3种情况,page<2 ,page=最后一页,page>1(这个情况可以不判断,直接用else)
* */
public function __construct($query,$maxline,$page){
@$this->link=mysql_connect($dbhost,$dbuser,$dbpasswd) or die($this->feedback='System Error ,Please contect admin');
@mysql_select_db($dbtable,$this->link) or die($this->feedback='System Error ,Please contect admin');
@mysql_query('set names utf8');
$this->maxline=$maxline;
//读取行数,并将结果返回$coutline
$this->result=mysql_query($query) or die($this->feedback='System Error ,Please contect admin');
if($count=mysql_fetch_row($this->result)){
//intval将字符串转为int,可以不转,但这样的程序更健康
$this->countline = intval($count[0]);
$this->countpage = ceil($this->countline/$maxline);
}
//判断递交的$page是否大于总页数
if($page<=$this->countpage){
$this->page=$page;
}
if($this->page<2){
$this->prevpage=0;
$this->nextpage=2;
$this->startline= 0;
}elseif($this->page==$this->countpage){
$this->prevpage=$this->page-1;
$this->nextpage=0;
$this->startline= ($this->page-1)*$this->maxline;
}else{
$this->prevpage=$this->page-1;
$this->nextpage=$this->page 1;
$this->startline= ($this->page-1)*$this->maxline;
}
}
/*
* 析构函数
* 释放资源,关闭数据库连接
* */
public function __destruct(){
mysql_free_result($this->result);
mysql_close($this->link);
exit();
}
/*
* 输出分页信息
* */
public function showpage(){
//$listnum显示上下页中间的数字位数,一定要偶数阿!否则不能被2除
$listnum=10;
echo $this->countline." Items, ".$this->countpage." Pages ";
if($this->prevpage==0){
echo "<<Prev ";
}else{
echo "prevpage."><<Prev ";
}
if($this->countpage<$listnum){ //判断总页数是否小于$listnum
$page_start=1;
$page_end=$this->countpage;
}elseif($this->page<$listnum/2){ //判断当前页是否小于$listnum的一半
$page_start=1;
$page_end=$listnum;
}elseif($this->page>$this->countpage-($listnum/2)){ //判断当前页是否是最后几页了
$page_start=$this->countpage-($listnum-1);
$page_end=$this->countpage;
}else{ //如果上面的条件都不符合,那当前也正在中间
$page_start=$this->page-($listnum/2-1);
$page_end=$this->page+($listnum/2);
}
for($i=$page_start;$i<=$page_end;$i++){ //根据上面判断的start和end页码,循环输出之间的页码
if($i==$this->page){
echo "".$i." ";
}else{
echo "".$i." ";
}
}
if ($this->nextpage==0){
echo " Next>>";
}else{
echo " nextpage.">Next>> ";
}
}
/*
* 根据sql语句读取数据库中的数据,然后列成表单输出
* 需要的变量:$field(字段),$table(表名),$startline(开始行),$maxline(每页显示行数)
* 输出从表格的tr开始,从tr结束,所以在使用这个方法前后要加table的标签
* */
public function showtable($query){
$query=$query." LIMIT ".$this->startline.",".$this->maxline;
$result = mysql_query($query) or die($this->feedback='System Error ,Please contect admin');
//行循环开始,定义一个$i变量,用来显示行号,每次执行一条while语句,指针就指向下一条数据
$i=0;
while ($fetch = mysql_fetch_assoc($result)){
$i++;
echo "
//列循环开始,因为通过while后,$fetch已经是个数组,所以通过foreach遍历数组即可
foreach ($fetch as $value){
echo "
}
echo "
}
}
/*
* 这个方法是将资源传出,表格在外面自定义样式
* */
public function showresult($query){
$result = mysql_query($query) or die($this->feedback='System Error ,Please contect admin');
return $result;
}
}
?>

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

JWT是一种基于JSON的开放标准,用于在各方之间安全地传输信息,主要用于身份验证和信息交换。1.JWT由Header、Payload和Signature三部分组成。2.JWT的工作原理包括生成JWT、验证JWT和解析Payload三个步骤。3.在PHP中使用JWT进行身份验证时,可以生成和验证JWT,并在高级用法中包含用户角色和权限信息。4.常见错误包括签名验证失败、令牌过期和Payload过大,调试技巧包括使用调试工具和日志记录。5.性能优化和最佳实践包括使用合适的签名算法、合理设置有效期、

静态绑定(static::)在PHP中实现晚期静态绑定(LSB),允许在静态上下文中引用调用类而非定义类。1)解析过程在运行时进行,2)在继承关系中向上查找调用类,3)可能带来性能开销。

PHP的魔法方法有哪些?PHP的魔法方法包括:1.\_\_construct,用于初始化对象;2.\_\_destruct,用于清理资源;3.\_\_call,处理不存在的方法调用;4.\_\_get,实现动态属性访问;5.\_\_set,实现动态属性设置。这些方法在特定情况下自动调用,提升代码的灵活性和效率。

PHP和Python各有优势,选择依据项目需求。1.PHP适合web开发,尤其快速开发和维护网站。2.Python适用于数据科学、机器学习和人工智能,语法简洁,适合初学者。

PHP是一种广泛应用于服务器端的脚本语言,特别适合web开发。1.PHP可以嵌入HTML,处理HTTP请求和响应,支持多种数据库。2.PHP用于生成动态网页内容,处理表单数据,访问数据库等,具有强大的社区支持和开源资源。3.PHP是解释型语言,执行过程包括词法分析、语法分析、编译和执行。4.PHP可以与MySQL结合用于用户注册系统等高级应用。5.调试PHP时,可使用error_reporting()和var_dump()等函数。6.优化PHP代码可通过缓存机制、优化数据库查询和使用内置函数。7

PHP在电子商务、内容管理系统和API开发中广泛应用。1)电子商务:用于购物车功能和支付处理。2)内容管理系统:用于动态内容生成和用户管理。3)API开发:用于RESTfulAPI开发和API安全性。通过性能优化和最佳实践,PHP应用的效率和可维护性得以提升。

在PHP8 中,match表达式是一种新的控制结构,用于根据表达式的值返回不同的结果。1)它类似于switch语句,但返回值而非执行语句块。2)match表达式使用严格比较(===),提升了安全性。3)它避免了switch语句中可能的break遗漏问题,增强了代码的简洁性和可读性。

在PHP中可以通过使用不可预测的令牌来有效防范CSRF攻击。具体方法包括:1.生成并在表单中嵌入CSRF令牌;2.在处理请求时验证令牌的有效性。
