分组 php库,一个比较简单的PHP 分页分组类

class mysqlPager{

var $pagePerNum=5;//每页显示数据项数

var $pagePerGroup=5;//每分页组中页数

var $curPage=0;//当前页,Defualt 第一页

var $totalPage=0;//总页数

var $totalNum=0;//数据项总数

var $curPageGroup=0;//当前分页组

var $curPageUrl="";//当前用到分页的 URL

var $customStyle="";//自定义风格

var $pageQuerySql="";

function mysqlPager(){//构造函数 PHP4

}

/**

* 初始化所有变量

*/

function InitAllVar($totalNum,$pagePerGroup,$curPageUrl,$curPage=1,$curPageGroup=1)

{

$this->totalNum=$totalNum;

$this->pagePerGroup=$pagePerGroup;

$this->curPageUrl=$curPageUrl;

$this->curPage=$curPage;

$this->curPageGroup=$curPageGroup;

}

/**

* 设置当前页变量

*

* @param 数字 $curPage

*/

function setCurPage($curPage)

{

$this->curPage=$curPage;

}

/**

* 设置当前分页组变量

*

* @param mixed $curPageGroup

*/

function setCurPageGroup($curPageGroup)

{

$this->curPageGroup=$curPageGroup;

}

/**

* 设置当前用到分布类的URL

* $curPageUrl string

*/

function setCurPageUrl($curPageUrl)

{

$this->curPageUrl=$curPageUrl;

}

/**

* 获取所有

*

* @param 数字 $totalNum

* @param 数字 $curPage

* @return float

*/

function getTotalPage($totalNum,$curPage=0)

{

return $this->totalPage=ceil($totalNum/$this->pagePerNum);

}

/**

* 设置用户自定义风格

*

* @param mixed $customStyle

*/

function setCustomStyle($customStyle)

{

$this->customStyle=$customStyle;

}

/**

* 设置用户自定义风格返回字符串

*

*

* @param mixed $pagerString

*/

function setCustomStyleString($pagerString)

{

return $styleString="".$pagerString."";

}

/**

* 输出导航页信息 可以不用参数,但是在使用前一定要设置相应的变量

*

* @param mixed $curPageGroup

* @param mixed $curPage

* @param mixed $curPageUrl

*/

function showNavPager($curPageGroup=0,$curPage=0,$curPageUrl=0)

{

if($curPageGroup)

{

$this->curPageGroup=$curPageGroup;

}

if($curPage)

{

$this->curPage=$curPage;

}

if($curPageUrl)

{

$this->curPageUrl=$curPageUrl;

}

$rtnString="";

//判断变量是否以经初始化

if($this->curPageGroup && $this->curPageUrl && $this->totalNum && $this->curPage)

{

$this->totalPage=$this->getTotalPage($this->totalNum);

if($this->curPage==1)

$this->curPage=($this->curPageGroup-1)*$this->pagePerGroup+1;

if($this->curPageGroup!=1)

{

$prePageGroup=$this->curPageGroup-1;

$rtnString.="".$this->setCustomStyleString("< ";

}

for($i=1;$i<=$this->pagePerGroup;$i++)

{

$curPageNum=($this->curPageGroup-1)*$this->pagePerGroup+$i;

if($curPageNum<=$this->totalPage){

if($curPageNum==$this->curPage)

{

$rtnString.=" ".$this->setCustomStyleString($curPageNum);

}else

{

$rtnString.=" curPageUrl?cpg={$this->curPageGroup}&cp=$curPageNum >";

$rtnString.=$this->setCustomStyleString($curPageNum)."";

}

}

}

if($this->curPageGrouptotalPage/$this->pagePerGroup)-1)

{

$nextPageGroup=$this->curPageGroup+1;

$rtnString.=" curPageUrl?cpg=$nextPageGroup >".$this->setCustomStyleString(">>")."";

}

$this->pageQuerySql=" limit ".(($this->curPage-1)*$this->pagePerNum).",".$this->pagePerNum;

}

else

{

$rtnString="错误:变量未初始化!";

}

return $rtnString;

}

/**

* 得到完整的查询MYSQL的Sql语句

*

* @param mixed $sql

*/

function getQuerySqlStr($sql)

{

$allsql=$sql.$this->pageQuerySql;

return $allsql;

}

/**

* 设置每页有多少数据项

*

* @param INT $num

*/

function setPagePerNum($num)

{

$this->pagePerNum=$num;

}

}

?>

使用方法:

$curPage=$_GET['cp'];

$curPageGroup=$_GET['cpg']

if($curPage=="")

$curPage=1;

if($curPageGroup=="")

$curPageGroup=1;

//都是从1开始,之前要对传入的数据进行验证,防注入

//。。。

$pager=new MysqlPager();

$pager->initAllVar(...)

$pager->showNavPager();

//后面的SQL可以是任意的输出

$sql="select id form dbname ";

$querysql=$pager->getQuerySqlStr($sql)

//以后用$querysql 查询数据库就可以得到相应的结果集了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
分页功能是通过将数据按照一定的规则进行分组,然后在页面上展示出来的一种常见的网页展示方式。在 PHP 中,我们可以使用 MySQL 数据来实现分页功能。 以下是一个简单的 PHP 分页代码示例: ```php <?php // 连接数据 $conn = mysqli_connect('localhost', 'username', 'password', 'database'); // 获取总记录数 $sql = "SELECT COUNT(*) FROM table_name"; $result = mysqli_query($conn, $sql); $row = mysqli_fetch_array($result); $total_records = $row[0]; // 每页显示数量 $per_page = 10; // 计算总页数 $total_pages = ceil($total_records / $per_page); // 获取当前页数 if (isset($_GET['page'])) { $current_page = $_GET['page']; } else { $current_page = 1; } // 计算起始位置 $start = ($current_page - 1) * $per_page; // 获取当前页数据 $sql = "SELECT * FROM table_name LIMIT $start, $per_page"; $result = mysqli_query($conn, $sql); // 输出数据 while ($row = mysqli_fetch_array($result)) { echo $row['column_name'] . '<br>'; } // 输出分页链接 for ($i = 1; $i <= $total_pages; $i++) { echo '<a href="?page=' . $i . '">' . $i . '</a> '; } ?> ``` 这段代码中,我们首先连接数据,并查询出总记录数。然后,我们设置每页显示的数量和当前页数,并根据这些信息计算出总页数和起始位置。接着,我们使用 `LIMIT` 关键字从数据中获取当前页的数据,并输出到页面上。最后,我们输出分页链接,使用户可以点击链接切换不同的页数。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值