zf框架db类的分页示例分享
这篇文章主要介绍了zf框架db类的分页示例,代码很简单,大家看一下注释就可以使用了
zf框架的分页示例
<?php isset($_GET['page']) ? $page = $_GET['page'] : $page = 1; //引入Loader类(自动加载类) require_once("Zend/Loader.php"); //使用Loader类引入一个Db类 Zend_Loader::loadClass("Zend_Db"); //引入Zend_Db的状态器 Zend_Loader::loadClass("Zend_Db_Statement_Pdo"); //配置数据库连接信息 $Config = array('host' => '127.0.0.1' , 'username' => 'root' , 'password' => '111' , 'dbname' => 'test', 'profiler' => "true" ); //告诉Zend_Db类所操作的数据库和数据库配置信息 $Db = Zend_Db::factory('PDO_Mysql' , $Config); //执行编码语句 $Db -> query("set names utf8"); //----------------------------------------------- //使用fetchOne()方法得出表的总条数 $Total = $Db -> fetchOne("select count(*) from gongsi"); //定义每页显示条数 $B = 50; //得出总页数 $A = ceil($Total/$B);//-----接下来为一系列的查询表、取结果集、分页等操作 $Select = $Db ->select(); $Select -> from('sanguo',array('s_sheng as 省份','sum(s_gongzi) as 总工资','min(s_gongzi) as 最低工资','max(s_gongzi) as 最高工资','avg(s_gongzi) as 平均工资')); // $Select -> Where('s_gongzi>=3000'); // $Select -> Where("s_sheng='河北'"); // $Select -> order('s_sheng asc'); // $Select -> order('s_gongzi desc'); $Select -> group('s_sheng'); //分组 //$Select -> having('最高工资>10000'); //附加条件 $Select -> order('最高工资 desc'); //排序 $Select -> limit(0,0); //截取 $Select -> limitPage($page, $B); //分页 /*SQL语句相当于: select s_sheng as 省份,sum(s_gongzi) as 最高工资 from sanguo group by s_sheng having 最高工资>10000 order by 最高工资 desc limit 0,10; */ $Result = $Db->fetchAll($Select);
echo "<table border='1' align='center' width='960' style='text-align:center'>"; echo "<tr><th>省份</th><th>总工资</th><th>最低工资</th><th>最高工资</th><th>平均工资</th></tr>"; foreach ($Result as $key => $value) { echo "<tr>"; foreach ($value as $key2 => $value2) { echo "<td>" . $value2 . "</td>"; } echo "</tr>"; } echo "<tr>"; echo "<td colspan='5'>"; echo "<a href=?page=1>首页</a> "; if ($page>1) { echo "<a href=?page=". ($page-1) .">上页</a> "; } for ($i=1; $i <=15 ; $i++) { echo "<a href=?page=$i>".$i."</a> "; } if ($page<$Total) { echo "<a href=?page=". ($page+1) .">下页</a> "; } echo "<a href=?page=" . $A .">末页</a>"; echo "</td>"; echo "</tr>"; echo "</table>"; ?>