首页 > 编程知识 正文

原生php分页代码,php分页功能怎么实现

时间:2023-12-27 22:27:02 阅读:325360 作者:TGLJ

本文目录一览:

php分页代码

你的第一段程序:

//获取总的记录数

$sql="select count(*) as amount from username";//注意,表article一定要存在

你的第二段程序:

//显示记录

if($amount)

{

$a=($page-1)*$page_size;$b=$page_size;

$sql="select * from liuyan order by id desc limit $a,$b";

你发现问题了没有?表名不相同,你数据库的表名称究竟是什么呀?这两个地方应该一致哦!

拜托,你是否可以粘贴一下你的43行?

请你在下面这样的语句:

$result=mysql_query($sql);

之后添加一行:

if (!$result) echo "执行SQL语句失败,语句:BR$sqlBR错误信息:".mysql_error();

然后再次执行程序,看屏幕上的错误信息你就知道问题出在哪里,看不处理就把这个信息粘贴上来,那个信息非常有用。

没有这个错误信息,我猜测是你的$a,$b数值可能有一个为空。

求php分页代码

////////////////////////////////分页/////////////////////////////

$pageListNum=20;//每页显示10条

$totalPage=0;//总页数

$page=isset($page)?(int)$page:1;//当前页

$start=($page-1)*$pageListNum;//起始编号

$totalPage=ceil($pageNum/$pageListNum);

require_once(WEB_CLASS.'/page_class.php');

$page=new PageClass($page,$totalPage);

$showpage=$page-showPage();

echo $showpage;

///////////////page_class.php////////////////////////

?php

header("Content-Type:text/html;charset=utf8");

/**

* 分页类

* URL有多个参数也能分页,还能自定义分页样式

* php=5.0

* @version 0.1.1

* @copyright 2006-2010

* @package class

*/

class PageClass{

private $url;

private $cpage;

private $totalPage;

private $tpl;

/**

* PageClass的构造函数

* 模板说明:{index}表示首页 {pagelist}链接列表 {option}下拉列表框 {next}下一页 {pre}上一页 {cur}当前页 {index=首页}表示首页的链接文字为首页,即=号后为链接文字,不过这对{pagelist}{option}无效

* @param string $cpage 当前页

* @param string $tatolPage 总页数

* @param string $tpl 模板.

* @param string $url 要分页的url 默认为当前页

* @return PageClass

*/

function __construct($cpage,$totalPage,$tpl='',$url=''){

$this-cpage=$cpage;

$this-totalPage=$totalPage;

if(strlen($tpl)==0){

$this-tpl="{cur=当前页}{index=首页} {pre=上一页} {next=下一页} {end=最后页} {option}"; //中文分页

}else{

$this-tpl=$tpl;

}

if(strlen($url)==0){

$this-url=$_SERVER['SERVER_NAME'].$_SERVER["REQUEST_URI"];

}else{

$this-url=$url;

}

}

/**

* 函数showPage,返回生成的分页HTML

* @return string

*/

function showPage(){

//显示分页

$urlOption=array();//url的后缀如:?page=1typeid=1

$parse_url=parse_url($this-url);

$urlMain='http://'.$parse_url['path'];

if($parse_url['query']){

//url有参数

$urlArr=split('',$parse_url['query']);

if(is_array($urlArr)){

foreach($urlArr as $key=$value){

$c=split('=',$value);

if($c[0]==page){

}else{

array_push($urlOption,$c[0].'='.$c[1]);

}

}

}

}else{

//url没有参数

//if($this-cpage$this-totalPage){

// array_push($urlOption,"page=2");

//}

}

if(is_array($urlOption)){

$urlOptionStr_t=implode('',$urlOption);

}

if(strlen($urlOptionStr_t)0){

$urlOptionStr.=''.$urlOptionStr_t;

}

$tplcontent=$this-tpl;//分页模板

$showPage=$tplcontent;

//首页

if (preg_match_all('/{index=([^}]*+)}/', $tplcontent, $matches)){

$t_tpl=$matches[0][0]; //模板内容

$t_word=$matches[1][0]; //分页字段

$indexStr='a href="'.$urlMain.'?page=1'.$urlOptionStr.'"'.$t_word.'/a';

$showPage=str_replace($t_tpl,$indexStr,$showPage);

}

//当前页

if (preg_match_all('/{cur=([^}]*+)}/', $tplcontent, $matches)){

$t_tpl=$matches[0][0];

$t_word=$matches[1][0];

$curStr=$t_word.$this-cpage.'/'.$this-totalPage;

$showPage=str_replace($t_tpl,$curStr,$showPage);

}

//末页

if (preg_match_all('/{end=([^}]*+)}/', $tplcontent, $matches)){

$t_tpl=$matches[0][0];

$t_word=$matches[1][0];

$endPage='a href="'.$urlMain.'?page='.$this-totalPage.$urlOptionStr.'"'.$t_word.'/a';

$showPage=str_replace($t_tpl,$endPage,$showPage);

}

//上一页

if (preg_match_all('/{pre=([^}]*+)}/', $tplcontent, $matches)){

$t_tpl=$matches[0][0];

$t_word=$matches[1][0];

if($this-cpage1){

$prePage='a href="'.$urlMain.'?page='.($this-cpage-1).$urlOptionStr.'"'.$t_word.'/a';

}else{

$prePage=$t_word;

}

$showPage=str_replace($t_tpl,$prePage,$showPage);

}

//下一页

if (preg_match_all('/{next=([^}]*+)}/',$tplcontent, $matches)){

$t_tpl=$matches[0][0];

$t_word=$matches[1][0];

if($this-cpage$this-totalPage $this-totalPage1){

$nextPage=' a href="'.$urlMain.'?page='.($this-cpage+1).$urlOptionStr.'"'.$t_word.'/a';

}else{

$nextPage=$t_word;

}

$showPage=str_replace($t_tpl,$nextPage,$showPage);

}

//链接列表

if (preg_match("{pagelist}",$tplcontent)){

for($i=1;$i$this-totalPage+1;$i++){

$linkPage.=' a href="'.$urlMain.'?page='.$i.$urlOptionStr.'"'.$i.'/a';

}

$showPage=str_replace('{pagelist}',$linkPage,$showPage);

}

//下拉框分页

if (preg_match("{option}",$tplcontent)){

$optionPage='select onchange="javascript:window.location='."'".$urlMain."?page='+this.options[this.selectedIndex].value+"."'$urlOptionStr'".';"';

for($i=1;$i$this-totalPage+1;$i++){

if($i==$this-cpage){

$optionPage.="option selected='selected' value='$i'第".$i."页/optionn";

}else{

$optionPage.="option value='$i'第".$i."页/optionn";

}

}

$optionPage.='/select';

$showPage=str_replace('{option}',$optionPage,$showPage);

}

return $showPage;

}

}

?

PHP分页代码

?php

include("connection.php");

$perNumber=10; //每页显示的记录数

$page=$_GET['page']; //获得当前的页面值

$count=mysql_query("select count(*) from user"); //获得记录总数

$rs=mysql_fetch_array($count);

$totalNumber=$rs[0];

$totalPage=ceil($totalNumber/$perNumber); //计算出总页数

if (!isset($page)) {

$page=1;

} //如果没有值,则赋值1

$startCount=($page-1)*$perNumber; //分页开始,根据此方法计算出开始的记录

$result=mysql_query("select * from user limit $startCount,$perNumber"); //根据前面的计算出开始的记录和记录数

while ($row=mysql_fetch_array($result)) {

echo "user_id:".$row[0]."br";

echo "username:".$row[1]."br"; //显示数据库的内容

}

if ($page != 1) { //页数不等于1

?

a href="fenye.php?page=?php echo $page - 1;?"上一页/a !--显示上一页--

?php

}

for ($i=1;$i=$totalPage;$i++) { //循环显示出页面

?

a href="fenye.php?page=?php echo $i;?"?php echo $i ;?/a

?php

}

if ($page$totalPage) { //如果page小于总页数,显示下一页链接

?

a href="fenye.php?page=?php echo $page + 1;?"下一页/a

?php

}

?

================================

这个是很简单的..而且也写了注释..不知道合不合你的意..

用php怎么实现页面的分页功能呢?用原生的php写,不是基于图片开发的,求代码,谢谢

?php

    /*

     *  $total 总记录数

     *  $num   显示数量

     *  $limit  回调SQL语句里的limit 变量

     *  $name  显示字符 默认'个商品'

     *  

     * */        

function page($total,$num,$limit,$name='个商品'){

    $pagenum=ceil($total/$num); //显示总页数 公式:总数据数 除以 每页显示的条数,有余进一 

    $cpage=isset($_GET['page'])? $_GET['page']:1;// 当前页是哪一页,即默认在哪一页

    

    

    $offset=($cpage-1)*$num;  //limit 第一个参数值  从第几个开始。

    

    $limit='LIMIT '.$offset.','.$num;

    $path=$_SERVER['SCRIPT_NAME'].'?'; // 获取当前URL路径

    

    //显示信息

    $str='共 '.$total.'nbsp;'.$name.'nbsp;nbsp;'.'每页显示nbsp;'.$num.'nbsp;条nbsp;nbsp;';   //共多少数据

    

    //显示上一页  

    if($cpage!=1){

        $befor=$cpage-1; //当前页 -1

        $str.='a href="'.$path.'page=1'.'"首页/anbsp;nbsp;a href="'.$path.'page='.$befor.'"上一页/a ';

    }

    //点击下一页后显示页码数量

    for($i=10;$i=1;$i--){

        $n=$cpage-$i;

            if($n0){

                $str.='a href="'.$path.'page='.$n.'"'.$n.'nbsp;nbsp;'.'/a';

            }

    }

    //当前显示页

    if($pagenum1){

        $str.='b'.$cpage.'nbsp;nbsp;'.'/b';

    

    }

    //当前页显示页码数量

    for($i=1;$i10;$i++){

        $n=$cpage+$i;

            if($n$pagenum){

            $str.='a href="'.$path.'page='.$n.'"'.$n.'nbsp;nbsp;'.'/a';

            }

        }

    

    //显示下一页

    if($cpage!=$pagenum){

        $next=$cpage+1;

    $str.='a href="'.$path.'page='.$next.'"下一页/anbsp;nbsp;a href="'.$path.'page='.$pagenum.'"末页/a';

    }

    return $str;

}

模版中使用:

        include "conn.inc.php";

        include "fenye.inc.php";

                  //添加分页

        $psql= "select count(*) as count from apply";

        $arr=mysql_fetch_assoc(mysql_query($psql));

        $total=$arr['count'];  //统计总数据

        

        $page=page($total,5,$limit,'条');

   $sql = "select *  from apply order by id desc $limit ";

                

        $result = mysql_query($sql);

        while($row = mysql_fetch_assoc($result)){

            echo "tr";

            echo "td".$row['id']."/td";

            echo "td".$row['name']."/td";

            echo "td".$row['place']."/td";

            echo "td".$row['xueli']."/td";

            echo "td".$row['tel']."/td";

            echo "td".$row['addtime']."/td";

            echo "tda href='javascript:void(0)' onclick='xq({$row['id']})'详情/a | a href='apply_index.php?del={$row['id']}' 删除/a/td";

            echo "/tr";

        }

            echo "trtd colspan='7'".$page."/td/tr";

?

PHP分页显示最简单代码

简单写法:

?php

include

("./config/conn.php");

$sql="select

*

from

ly

order

by

id

desc";

$result=mysql_query($sql);

$num=mysql_num_rows($result);

//统计行数

$pages=ceil($num/5);

//总页数

$page=$_GET['page'];

//获得page,如果没有设置或者page=0,把$page=1;

if(!isset($page)

||

$page==0)

$page=1;

$start=($page-1)*5;

$sql="select

*

from

ly

order

by

id

desc

limit

$start,5";

mysql_query($sql);

if($sumpage!=0)

{

if($page!=1)

{

echo

"a

href=$PHP_SELF?page=1首页/at";

}else

{

echo

"首页t";

}

if($page1)

{

echo

"a

href=$PHP_SELF?page=".($page-1)."上一页/at";

}else

{

echo

"上一页t";

}

if($page$pages)

{

echo

"a

href=$PHP_SELF?page=".($page+1)."下一页/at";

}else

{

echo

"下一页t";

}

if($page!=$pages)

{

echo

"a

href=$PHP_SELF?page=".$pages."尾页/at";

}else

{

echo

"尾页t";

}

}else

{

echo

"目前没有记录!!";

}

thinkphp5原生查询时,查询结果怎么分页,具体代码应该怎么写?

造成这个错误的原因是 Db::query($sql)返回的是数组,解决方法:

$list = Db::table('products')-field('id,name,price')-paginate(5);

视图:

遍历$list元素

分页{$list-render()}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。