php分页技术--完善大师兄的分页技术
php分页技术--完善大师兄的分页技术
陈师兄 发表于5个月前
php分页技术--完善大师兄的分页技术
  • 发表于 5个月前
  • 阅读 6
  • 收藏 0
  • 点赞 0
  • 评论 0

标题:腾讯云 新注册用户域名抢购1元起>>>   

摘要: 一个很好的分页技术,直接调用即可,希望能为大家带来帮助

pagelist.php文件

<?php
//分页原理
//首页来判断总页数

function Page($GX_pageno,$GX_num,$GX_n,$GX_pre_word,$GX_next_word,$GX_end_word,$GX_index_word,$GX_word,$GX_pagelen){
if(!isset($GX_pre)) $GX_pre=true;
if(!isset($GX_next)) $GX_next=true;
if(!isset($GX_end)) $GX_end=true;
if(!isset($GX_index)) $GX_index=true;
if(!isset($GX_word)) $GX_word=false;
if(!isset($GX_n)) $GX_n=1;
if(!isset($GX_pagelen)) $GX_pagelen=15;
if(!isset($GX_page)) $GX_page=8;
if($GX_n>3) $GX_n=3;

if($GX_num==$GX_pagelen){
$all_page = 1;
}else{
if($GX_num%$GX_pagelen==0){
$all_page = floor($GX_num/$GX_pagelen);
}else{
$all_page = floor($GX_num/$GX_pagelen)+1;
}
}
$returnpage='<div class="Blue_page">';
if($GX_word){
   $returnpage.= '<li><span class="GX_word">总记录数:'.$GX_num.'总页数:'.$all_page.'当前页:'.$GX_pageno.'</span></li>';
}
$href = $_SERVER["QUERY_STRING"];
$href = preg_replace('/pageno=([\w+].*)/','',$href);
$href = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'].'?'.$href.'pageno=';
//先处理url和长度
$all_pagelen=$GX_page;  // 定义变量页数的总显示个数
$pagen=$GX_n;
$all_pagel = floor($all_pagelen/2);


// if($GX_index) $returnpage.= '<li><a href="'.$href.'1">'.$GX_index_word.'</a></li>';

if($GX_pageno==1){
    $returnpage.='';
// if($GX_pre)
 // $returnpage.= '<li><a href="javascript:void();">'.$GX_pre_word.'</a></li>';
}else{
if($GX_pre) 
$returnpage.= '<li><a href="'.$href.'1">'.$GX_index_word.'</a></li>';
    $returnpage.='<li><a href="'.$href.($GX_pageno-1).'">'.$GX_pre_word.'</a></li>';
}
if($all_page<=$all_pagelen){  //此处判断总页数小于或者等于$all_pagelen的情况
for($i=1;$i<($all_page+1);$i++){
if($GX_pageno==$i){
$returnpage.='<li><span class="current">'.$i.'</span></li>';
}else{
$returnpage.='<li><a href="'.$href.$i.'">'.$i.'</a></li>';
}
}
}else{//此处处理总页数大于$all_pagelen的页数分页部分
if($GX_pageno>$all_pagel){
if($GX_pageno+$all_pagel<=$all_page){
for($k=$all_pagel;$k>0;$k--){
$returnpage.='<li><a href="'.$href.($GX_pageno-$k).'">'.($GX_pageno-$k).'</a></li>';
}
$returnpage.='<li><span class="current">'.$GX_pageno.'</span></li>';
for($m=1;$m<($all_pagel+1);$m++){
$returnpage.='<li><a href="'.$href.($GX_pageno+$m).'">'.($GX_pageno+$m).'</a></li>';
}
}else{
for($l=($all_pagelen-1);$l>=0;$l--){
if($l==($all_page-$GX_pageno)){
$returnpage.='<li><span class="current">'.$GX_pageno.'</span></li>';
}else{
$returnpage.='<li><a href="'.$href.($all_page-$l).'">'.($all_page-$l).'</a></li>';
}
}
}
}else{
for($j=1;$j<($all_pagelen+1);$j++){
if($GX_pageno==$j){
$returnpage.= '<li><span class="current">'.$j.'</span></li>';
}else{
$returnpage.='<li><a href="'.$href.$j.'">'.$j.'</a></li>';
}
}
}
}
if($GX_pageno+$all_pagel<=$all_page-$pagen){
$returnpage.="<li><span>...</span></li>";
for($n=$pagen;$n>0;$n--){
$returnpage.='<li><a href="'.$href.($all_page-($n-1)).'">'.($all_page-($n-1)).'</a></li>';
}
}
if($GX_pageno==$all_page){
if($GX_next) $returnpage.='<li><a href="javascript:void();">'.$GX_next_word.'</a></li>';
}else{
if($GX_next) $returnpage.='<li><a href="'.$href.($GX_pageno+1).'">'.$GX_next_word.'</a></li>';
}
if($GX_end) $returnpage.= '<li><a href="'.$href.$all_page.'">'.$GX_end_word.'</a></li>';
// $returnpage.=" 跳到<select name='topage' size='1' style='border-radius:4px;height:20px;width:45px;' onchange='window.location=\"".$href."\"+this.value'>\n";  
//         for($i=1;$i<=$all_page;$i++){ 
//           if($i==$GX_pageno) $returnpage.="<option value='$i' selected>$i</option>\n"; 
//           else $returnpage.="<option value='$i'>$i</option>\n"; 
//         } 

$returnpage.="<li><span>共".$all_page."页,</span></li>";   //第几页,共几页
$returnpage.="<li><span >跳到<input type='number' name='topage' class='topage' id='topage' min='1' max='".$all_page."'  value='".$GX_pageno."' />页</span><li>";
$returnpage.="<li><span><input type='submit' name='submit' class='pagesubmit' value='确定'  onclick='window.location=\"".$href."\"+document.getElementById(\"topage\").value'></span></li><div>";

return $returnpage;
}
echo <<<EOT
<style type="text/css">
input:focus {outline:none;}
.Blue_page{width:100%;height:45px;text-align: center;}
.Blue_page li{display:inline-block;margin-left:3px;}
.Blue_page li a{margin: 0 1px;padding: 10 12px;border: 3px double #fff;background: #eee;color: #06f;text-decoration: none;font-family: Arial, Helvetica, sans-serif;font-size:16px;}
.Blue_page li a:hover{margin: 0 1px;padding: 10 12px;border: 3px double #fff;background: red;color: #06f;text-decoration: none;font-family: Arial, Helvetica, sans-serif;font-size:16px;}
.Blue_page li span.current{margin: 0 1px;padding: 10 12px;color: #fff;border: 3px double #fff;background:red;}
.Blue_page li span{color:#06f;}
 .topage{margin: 0 1px;color: #000;border: 3px double #fff; background: #eee;width: 58px;height: 40px; text-align: center;font-size:16px;}
 .pagesubmit{margin: 0 1px;color: #06f;border: 3px double #fff; background: #eee;width: 58px;height: 40px; text-align: center;font-size:16px;cursor:pointer;}
</style>
EOT;
?>

index.php文件

<html>
<head>
<title>分页</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>

<body>
<div >
<table style="width: 400px;margin: 0 auto;">
<?php
 //判断当前页码
 error_reporting(E_ALL & ~E_WARNING & ~E_NOTICE );
include_once("./conn.php");
$GX_pageno=$_GET['pageno']?$_GET['pageno']:'1';//获取页数
$GX_pagelen=6;
$offset=$GX_pagelen*($GX_pageno-1);
$select_limit=$GX_pagelen;
$sql="select * from product limit $offset,$select_limit";
$result=mysql_query($sql,$link);
while ($row=mysql_fetch_array($result)) {
?>
<tr>
     <td bgcolor="#FFFFFF" height="25px">
          <div align="center">
              <?php echo $row['id'];?>
          </div>
     </td>
    <td bgcolor="#FFFFFF">
         <div align="center">
             <?php echo $row['title'];?>
         </div>
     </td>
</tr>
<?php
} 
?>
</table>
</div>
<div>
<?php
$result=mysql_query('select id from product');
$GX_num = mysql_num_rows($result);
// $GX_num=10000;//一共有多少条数据
$GX_n=3;//设置尾部显示多少个页码,不要超过三个为了美观
//$GX_pagelen=100;//一页显示多少条数据
//$GX_page=20;//显示分页列表的长度
//$GX_pre=false;隐藏上一页按钮
//$GX_next=false;隐藏下一页按钮
//$GX_index=false;隐藏首页按钮
//$GX_end=false;隐藏末页按钮
$GX_pre_word=" 上一页 ";
$GX_next_word=" 下一页 ";
$GX_end_word=" 末页 ";
$GX_index_word=" 首页 ";
include "pagelist.php";
echo Page($GX_pageno,$GX_num,$GX_n,$GX_pre_word,$GX_next_word,$GX_end_word,$GX_index_word,'',$GX_pagelen);
//$GX_pageno当前页
//$GX_num总数
//$GX_n最后显示多少项,为了美观最好是3
//$GX_pre_word上一页的设置可以为<
//$GX_next_word下一页可以为>
//$GX_end_word尾页
//$GX_index_word 首页
//$GX_word不存在隐藏总记录数
//$GX_pagelen一页显示多少记录,不存在为15条
?>
</div>
</body>
</html>

conn.php文件

<?php
/*替换为你自己的数据库名*/
$dbname = 'fen';
/*填入数据库连接信息*/
$host = 'localhost';
$port = 3306;
$user = 'root';//用户名(api key)
$pwd = 'root';//密码(secret key)
 /*以上信息都可以在数据库详情页查找到*/

/*接着调用mysql_connect()连接服务器*/
$link = @mysql_connect("{$host}:{$port}",$user,$pwd,true);
mysql_query("set names utf-8");
if(!$link) {
    die("Connect Server Failed: " . mysql_error());
}
/*连接成功后立即调用mysql_select_db()选中需要连接的数据库*/
if(!mysql_select_db($dbname,$link)) {
    die("Select Database Failed: " . mysql_error($link));
}
?>

本人比较懒,希望能给有需要的人带来帮助

效果图:

标签: php html5lib
共有 人打赏支持
粉丝 0
博文 1
码字总数 1184
×
陈师兄
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: