利用楼主的分页类,在针对Postgresql的分页查询中正常实现
应用举例如下:
index.php<?php
include("pagec.php");
$page=$_GET["page"]; //当前页码
echo $page."<br>";
if (empty($page)) $page=1;
echo $page."<br>";
//连接数据库
$dbconn = pg_connect("host=localhost port=5432 dbname=workflowj user=wfuser password=wfpass")
or die("数据库不能连接。");
$result = pg_query("select * from users");
$total=pg_num_rows($result);
//调用pagec类,每页显示2条信息 , 使用本页URL(默认,所以省略掉,还可以类似 list.php?id=1)。
$obj=new pagec($total, '2', 'index.php');
echo "$obj->pagestart($page) is ".$obj->pagestart($page)."<br>";
$sql = "select * from users ORDER BY username LIMIT 2 OFFSET ".$obj->pagestart($page);
echo $sql."<br>";
$result = pg_query($dbconn, $sql);
while($row = pg_fetch_row($result)){
for ($j=0; $j < count($row); $j++) {
echo "$row[$j] ";
}
echo "<BR>";
}
echo $obj->pageindex($page);//输出分页导航
?>感谢楼主的分享!
应用举例如下:
index.php<?php
include("pagec.php");
$page=$_GET["page"]; //当前页码
echo $page."<br>";
if (empty($page)) $page=1;
echo $page."<br>";
//连接数据库
$dbconn = pg_connect("host=localhost port=5432 dbname=workflowj user=wfuser password=wfpass")
or die("数据库不能连接。");
$result = pg_query("select * from users");
$total=pg_num_rows($result);
//调用pagec类,每页显示2条信息 , 使用本页URL(默认,所以省略掉,还可以类似 list.php?id=1)。
$obj=new pagec($total, '2', 'index.php');
echo "$obj->pagestart($page) is ".$obj->pagestart($page)."<br>";
$sql = "select * from users ORDER BY username LIMIT 2 OFFSET ".$obj->pagestart($page);
echo $sql."<br>";
$result = pg_query($dbconn, $sql);
while($row = pg_fetch_row($result)){
for ($j=0; $j < count($row); $j++) {
echo "$row[$j] ";
}
echo "<BR>";
}
echo $obj->pageindex($page);//输出分页导航
?>感谢楼主的分享!
解决方案 »
- 【问个很白的问题】PHP代码是在服务器运算还是本地?
- 昨天本机上装了apache2.2 装完之后能启动,但今天开机之后就一直启动不了 提示 The requested operation has failed!
- 关于select where 语句的问题
- PHP+Mysql开发站内消息系统.求个思路!(答者有分!)
- 请问如何以正则随机获取其中任何一个
- PHP简单图片上传,看看哪出问题了?
- 关于php的引用,怎么理解。。
- 新手请教php乱码问题。
- 讨论:php能否实现这样的功能,根据MAC 地址获取到ip并发送到固定的邮箱里头。
- javascript写的表单验证,当提示比如“请输入用户名”时,怎么让他自动定位到用户名表单
- 如何将在线编辑器所得的全部内容(文字、图片、flash)保存到WEB服务器?
- 初学php
回复人: wangguan007(张) ( ) 信誉:100
引用得很对。不过有多个参数的时候,( 如 index.php?h=2) 有点bug
* C_page Class
*
* 获得页面详细信息,显示分页
*
* @author aiiiq
* @website http://www.aiiiq.com/
* @email [email protected]
* @today 5:18 05-9-9
*/
class C_page
{
var $cur_page; //当前页
var $rows_per_page; //每页显示几行
var $sql; //查询语句
var $sum_pages; //总页数
var $sum_rows; //总记录数
var $url; //地址栏参数
var $cur_row; //当前页首条记录 /**
* 获得页面信息
*
* Usage Example:
* $thepage = new C_page;
* $sql = "SELECT id FROM $notes_table WHERE type=2";
* $rows_per_page = 5;
* $thepage->f_page_detail("SELECT id FROM $notes_table WHERE type=2", 5);
* echo "总页数: " . $thepage->sum_pages;
*/
function f_page_detail ( $sql, $rows_per_page )
{
$result = mysql_query($sql) or die ('Query failed: ' . mysql_error());
$this->sum_rows = mysql_num_rows($result);
$this->sum_pages = ceil($this->sum_rows / $rows_per_page);
$this->cur_page = $_GET['page']; //从地址栏得到需要显示的页
if ($this->cur_page == '' || $this->cur_page < 1)
{
$this->cur_page = 1;
}
else if ($this->cur_page > $this->sum_pages)
{
$this->cur_page = $this->sum_pages;
} $this->cur_row = ($this->cur_page - 1) * $rows_per_page;
} /**
* 显示分页
*
* Usage Example:
* $thepage = new C_page;
* $sql = "SELECT id FROM $notes_table WHERE type=2";
* $thepage->f_page_display($sql, 5, "dir_list.php?");
*
* 调用:f_page_detail ( $sql, $rows_per_page )
* 输出:第1页 共4页 首页 尾页 上一页 下一页
*/
function f_page_display ( $sql, $rows_per_page, $url )
{
$this->f_page_detail ( $sql, $rows_per_page ); //调用函数,获得页面信息 printf ("第%s页 \n", $this->cur_page);
printf ("共%s页 \n", $this->sum_pages);
printf ("共%s条记录 \n", $this->sum_rows); if ($this->cur_page > 1)
{
printf ("<a href='%spage=1'>首页</a>\n", $url);
}
else
{
printf ("首页 \n");
} if ($this->cur_page < $this->sum_pages)
{
printf ("<a href='%spage=%s'>尾页</a>\n", $url, $this->sum_pages);
}
else
{
printf ("尾页 \n");
} if ($this->cur_page > 1)
{
printf ("<a href='%spage=%s'>上一页</a>\n", $url, $this->cur_page - 1);
}
else
{
printf ("上一页 \n");
} if ($this->cur_page < $this->sum_pages)
{
printf ("<a href='%spage=%s'>下一页</a>\n", $url, $this->cur_page + 1);
}
else
{
printf ("下一页 \n");
}
}
}?>
-------------------
$page 当前页
$pagecount 总页数
$url 地址就用这三个参数就可以了。$pagecount,$page,$url 是主函数给它。它只格式化输出。
我的想法。
方法,我用过两个
第一个,就是根据SQL语句得到数据limit ,显示分面
第二个就是把得到记录集,但根据记录集分页