经典论坛 » 后台数据库编程 » mysql 数据库 分页类
太极无影
荣誉管理团队
专长 JS,PHP,MySQL
<?php $db_config["hostname"] = "127.0.0.1"; //服务器地址 $db_config["username"] = "root"; //数据库用户名 $db_config["password"] = "root"; //数据库密码 $db_config["database"] = "wap_blueidea_com"; //数据库名称 $db_config["charset"] = "utf8"; $config["charset"] = "utf-8"; //网站编码 include('db.php'); include('pagelist.php'); $db = new db(); $db->connect($db_config); header("content-type:text/html;charset=".$config["charset"]);//设置页面编码 $pl = new pagelist(); $arr = $pl->get_rows('table_name'); unset($pl); echo '<pre style="text-align:left">'; print_r($arr); echo '</pre>'; //指定特殊 sql 时候 $pl = new pagelist(); $sql = 'SELECT * FROM `wap_article` AS a, `wap_article_info` AS b WHERE a.id=b.articleid'; $arr = $pl->get_rows_sql($sql); unset($pl); echo '<pre style="text-align:left">'; print_r($arr); echo '</pre>'; ?>
查看个人网站
查看详细资料
TOP
初级会员
专长 前端制作,JS,PHP
# 功 能: 页数列表类型 # 创建作者: Sanders Yao # 修改作者: Sanders Yao # 创建日期: 2007-12-25 # 修改日期: 2007-12-28 //====================================== // 必要常量:PAGELIST_MODE_ALL: 所有页数模式 // 必要常量:PAGELIST_MODE_FIX: 固定页数模式 // 必要常量:PAGELIST_MODE_MID: 中点页数模式 // 必要常量:PAGELIST_MODE_RANDOM: 随机页数模式 //====================================== define("PAGELIST_MODE_ALL", 0); define("PAGELIST_MODE_FIX", 1); define("PAGELIST_MODE_MID", 2); define("PAGELIST_MODE_RANDOM", 3); //====================================== // 类型: pageList // 功能: 获取页数列表 // 属性: // @itsPage: 当前页数 // @itsLength: 页数列表长度 // @itsList: 页数列表 // @itsTotalPage: 总页数 // @itsOffset: MySQL的LIMIT偏移量参数 // @itsPageBack: 前一页 // @itsPageNext: 后一页 // @itsListBack: 快退 // @itsListNext: 快进 //====================================== class pageList { var $itsPage; var $itsLength; var $itsList; var $itsTotalPage; var $itsOffset; var $itsPageBack; var $itsPageNext; var $itsListBack; var $itsListNext; //====================================== // 函数: pageList($num = 0, $perpage = 10, $page = NULL, $length = 10) // 功能: 构造函数 // 参数: $num: 总记录数 // 参数: $perpage: 每页记录数 // 参数: $page: 页数 // 参数: $length: 页数列表长度 // 返回: 该类型的对象实例 //====================================== function pageList($num = 0, $perpage = 10, $page = NULL, $length = 10) { if($page) { $this->itsPage = $page; } else { $this->itsPage = isset($_GET["page"]) && is_numeric($_GET["page"]) && $_GET["page"] > 0 ? $_GET["page"] : 1; } $this->itsLength = $length; $this->itsTotalPage = ceil($num / $perpage); $this->itsOffset = ($this->itsPage - 1) * $perpage; $this->itsPageBack = $this->itsPage > 1 ? $this->itsPage - 1 : 1; $this->itsPageNext = $this->itsPage < $this->itsTotalPage ? $this->itsPage + 1 : $this->itsTotalPage; } //====================================== // 函数: getList($mode) // 功能: 构造函数 // 参数: $mode: 列表模式 // 参数: $ext: 扩展参数 // 返回: 页数列表 //====================================== function getList($mode = PAGELIST_MODE_MID, $ext = NULL) { switch($mode) { case PAGELIST_MODE_ALL: $this->modeAll(); break; case PAGELIST_MODE_FIX: $this->modeFix(); break; case PAGELIST_MODE_MID: $this->modeMid(); break; case PAGELIST_MODE_RANDOM: $this->modeRandom(); break; default: $this->modeMid(); } return count($this->itsList) ? $this->itsList : array(1); } //====================================== // 函数: modeAll() // 功能: 获取所有页数 // 参数: 无 // 返回: 页数列表 //====================================== function modeAll() { $this->itsList = array(); for($i = 1;$i <= $this->itsTotalPage;$i ++) { $this->itsList[] = $i; } return $this->itsList; } //====================================== // 函数: modeFix() // 功能: 固定页数 // 参数: 无 // 返回: 页数列表 //====================================== function modeFix() { $this->itsList = array(); $start = floor(($this->itsPage - 1) / $this->itsLength) * $this->itsLength + 1; $end = $start + $this->itsLength - 1; $end = $end > $this->itsTotalPage ? $this->itsTotalPage : $end; for($i = $start;$i <= $end;$i ++) { $this->itsList[] = $i; } $this->itsListBack = $start > 1 ? $start - 1 : $this->itsPage; $this->itsListNext = $end < $this->itsTotalPage ? $end + 1 : $this->itsPage; return $this->itsList; } //====================================== // 函数: modeMid() // 功能: 中点页数 // 参数: 无 // 返回: 页数列表 //====================================== function modeMid() { $this->itsList = array(); if($this->itsLength % 2) { $frontHalf = $backHalf = floor($this->itsLength / 2); } else { $frontHalf = $this->itsLength / 2; $backHalf = $frontHalf - 1; } if($this->itsPage - $frontHalf < 1) { $start = 1; } elseif($this->itsPage + $backHalf < $this->itsTotalPage) { $start = $this->itsPage - $frontHalf; } else { $temp = $this->itsPage - $frontHalf - $backHalf + $this->itsTotalPage - $this->itsPage; $start = $temp < 1 ? 1 : $temp; } if($this->itsPage + $backHalf > $this->itsTotalPage) { $end = $this->itsTotalPage; } elseif($this->itsPage - $frontHalf > 1) { $end = $this->itsPage + $backHalf; } else { $temp = $this->itsPage + $backHalf + $frontHalf - $this->itsPage + 1; $end = $temp > $this->itsTotalPage ? $this->itsTotalPage : $temp; } for($i = $start;$i <= $end;$i ++) { $this->itsList[] = $i; } $this->itsListBack = $this->itsPage - $this->itsLength > 1 ? $this->itsPage - $this->itsLength : 1; $this->itsListNext = $this->itsPage + $this->itsLength < $this->itsTotalPage ? $this->itsPage + $this->itsLength : $this->itsTotalPage; return $this->itsList; } //====================================== // 函数: modeRandom() // 功能: 随机页数 // 参数: 无 // 返回: 页数列表 //====================================== function modeRandom() { $all = $this->modeAll(); $this->itsList = array(); list($sec, $usc) = explode(" ", microtime()); srand($usc); shuffle($all); $end = $this->itsTotalPage - 1 > $this->itsLength ? $this->itsLength : $this->itsTotalPage - 1; for($i = 0;$i <= $end;$i ++) { $temp = array_shift($all); if($this->itsPage != $temp) { $this->itsList[] = $temp; } else { $this->itsList[] = array_shift($all); } } return $this->itsList; } }
老胡
银牌会员
专长 PHP
<?php function get_rows_by_sql($sql=''){ if ($sql) { $this->sql = $sql." LIMIT ".$this->page_size*($this->page-1).", ".$this->page_size; //指定的SQL; }else{ $this->get_sql(); } return $this->db->row_query($this->sql); } ?>
新手上路
<? //省略了db建立 $pl=new pagelist(); $pl->page_size=$g_out['pagesize']; $sql='select count(*) from `notes` where `userid`=$userid order by id desc'; echo $pl->get_rows_sql($sql); ?>
//总记录数 function set_total_records(){ if ($this->total_records==0 or !isset($this->total_records)){ if (empty($this->count_sql) and !empty($this->table["tablename"])){ $sql = "SELECT count(".$this->table["id"].") as count_id FROM `".$this->table["tablename"]."` ".($this->table["where"]!=""?" WHERE ".$this->table["where"]:""); }else{ $sql = preg_replace("/SELECT(.*?)FROM(.*?)/i", "SELECT count(a.id) AS count_id FROM\\2", $this->sql); } $arr = $this->db->row_query_one($sql); $this->total_records = $arr["count_id"]; } }
//总记录数 function set_total_records(){ if ($this->total_records==0 or !isset($this->total_records)){ if (empty($this->count_sql) and !empty($this->table["tablename"])){ $sql = "SELECT count(".$this->table["id"].") as count_id FROM `".$this->table["tablename"]."` ".($this->table["where"]!=""?" WHERE ".$this->table["where"]:""); }else{ $sql = preg_replace("/SELECT(.*?)FROM(.*?)/i", "SELECT count(a.id) AS count_id FROM\\2", $this->sql); $sql = preg_replace("/LIMIT(.*)/i","",$sql); //去掉limit } $arr = $this->db->row_query_one($sql); $this->total_records = $arr["count_id"]; } }