dw php mysql记录集分页

在DW中插入分页导航,下面是应用DW中服务行为实现:第一页,上一页,下一页,最后页的代码。<ahref="<?phpprintf("%s?pageNum_cb=%d%s"... 在DW中插入分页导航,下面是应用DW中服务行为实现:第一页,上一页,下一页,最后页的代码。
<a href="<?php printf("%s?pageNum_cb=%d%s", $currentPage, 0, $queryString_cb); ?>">第一页</a><a href="<?php printf("%s?pageNum_cb=%d%s", $currentPage, max(0, $pageNum_cb - 1), $queryString_cb); ?>">上一页</a><a href="<?php printf("%s?pageNum_cb=%d%s", $currentPage, min($totalPages_cb, $pageNum_cb + 1), $queryString_cb); ?>">下一页</a><a href="<?php printf("%s?pageNum_cb=%d%s", $currentPage, $totalPages_cb, $queryString_cb); ?>">最后页</a>

以上代码中,cb为记录集,排序顺序是date(更新时间),不是按照idno(编号)。如果我想实现〔1〕〔2〕〔3〕〔4〕〔5〕〔6〕〔7〕〔8〕〔9〕〔10〕〔11〕数字导航,并且只显示10个数字,如(〔1〕—〔10〕)、(〔2〕—〔11〕),请问代码是什么?
注:我不会php编程,用的是MYSQL数据库。每页只显示50个。
提示:如果太麻烦,可以增加积分。
根据一楼的提示,确实可以的,但怎么设计循环函数呢?总数记数为<?php echo $totalRows_cb ?>
展开
 我来答
无涯先生
2010-04-02 · TA获得超过457个赞
知道小有建树答主
回答量:706
采纳率:0%
帮助的人:285万
展开全部
用一个分页类。直接调用。
<?php

/**
* 分页类
* 用DBMySQL类读取数据库
*/
class BreakPage
{
//属性开始
var $pageparam="pageno";
var $sql;//显示数据的sql
var $countsql;//显示总记录数的SQL
var $max_line;//最大记录数
var $begin_record;//开始记录数
var $current_page;//当前页
var $total_record;//总记录数
var $total_page;//总页数
var $conn_id;//数据库连接
var $query_id;//查询句柄
var $row_num;//当页记录的条数
var $url;//url
var $param="";
//属性结束
function setpageparam($pageparam)
{
$this->pageparam=$pageparam;
}
function getpageparam()
{
return $this->pageparam;
}

function setrows($rows)
{
$this->row_num=$rows;
}
function getrows()
{
return $this->row_num;
}

function setparam($param)
{
$this->param=$param;
}
function getparam()
{
return $this->param;
}

function seturl($url)
{
$this->url=$url;
}
function geturl()
{
return $this->url;
}

//属设置开始
function setcountsql($countsql)
{
$this->countsql="select count(*) as count from (".$countsql.") as temp1";
}
function getcountsql()
{
return $this->countsql;
}

function settotalpage($totalpage)
{
$this->total_page=$totalpage;
}
function gettotalpage()
{
return $this->total_page;
}

function settotalrecord($totalrecord)
{
$this->total_record=$totalrecord;
}
function gettotalrecord()
{
return $this->total_record;
}

/**
* 设置当前页,从1开始
*
* @param unknown_type $currentpage
*/
function setcurrentpage($currentpage)
{
$this->current_page=$currentpage<1? 1:$currentpage;
}
function getcurrentpage()
{
return $this->current_page;
}

function setbeginline($begin)
{
$this->begin_record=$begin;
}
function getbeginline()
{
return $this->begin_record;
}

function setsql($sql)
{
$this->sql=$sql;
}
function getsql()
{
return $this->sql;
}

/**
* 设置最大记录数
* @param unknown_type $maxline
*/
function setmaxline($maxline)
{
$this->max_line=$maxline;
}
function getmaxline()
{
return $this->max_line;
}
//属性设置结束

function __construct()
{//连接数据库
$this->setbeginline(0);
$this->setmaxline(10);
}
function __destruct()
{
}

//方法开始

/**
* 主体函数,查询当前页的记录,同时返回信息
* @param string $sql:查询的SQL,如select * from table1;
* @param string $countsql:总数量的SQL,如select count(*) from table1;
* @return 当前页的记录
*/
function getrecords($db,$sql)
{
$this->setsql($sql);//设置查询的SQL
$this->setcountsql($sql);//设置查询总数量的SQL

//查询总记录数,可用gettotalrecord()方法返回总记录数
$db->query($this->getcountsql());
$db->seek(0);
//返总记录数
$this->settotalrecord($db->f(0));
$db->free();
//根据当前页和每页最大记录数计算开始和结束记录
//可用getbeginline()方法查询开始记录值,即limit的开始值
//可用getmaxline()方法查询每页记录数,即limit的第二个限制值
$this->setbeginline(($this->getcurrentpage()-1)*$this->getmaxline());//设置开始记录值,即limit的开始值
//计算结束

//计算总页数
//可用gettotalpage()查询总页数
$this->settotalpage((int)(($this->gettotalrecord()+$this->getmaxline()-1)/$this->getmaxline()));//(总记录数+每页记录数-1)/每页记录数
//计算结束

//返回当前记录
$temp_sql=$this->getsql()." limit ".$this->getbeginline().",".$this->getmaxline();//构造限制的SQL语句

$db->query($temp_sql);
$result=$db->getalldata();
return $result;
//结束
}

function paint()
{
$prepg=$this->getcurrentpage()<=1? 1:$this->getcurrentpage()-1;//上一页
$nextpg=$this->getcurrentpage()>=$this->gettotalpage()? $this->gettotalpage():$this->getcurrentpage()+1;//下一页

$otherparam=$this->getparam()!=""? "&".$this->getparam():"";

$pagenav="<table><tr>";
if($this->getcurrentpage()==1)
{//第一页
$pagenav.="<td nowrap='nowrap' style='font-size: 12px'><a disabled='disabled'>首页</a></td><td nowrap='nowrap' style='font-size: 12px'><< </td>";
}
else
{
$pagenav.="<td nowrap='nowrap' style='font-size: 12px'><a href='".$this->geturl()."?".$this->getpageparam()."=1$otherparam'>首页</a></td><td nowrap='nowrap' style='font-size: 12px'><< </td>";
}
if($this->getcurrentpage()>1)
{//有上一页
$pagenav.="<td nowrap='nowrap' style='font-size: 12px'><a href='".$this->geturl()."?".$this->getpageparam()."=$prepg$otherparam'>上一页</a></td>";
}
else
{//第一页
$pagenav.="<td nowrap='nowrap' style='font-size: 12px'><a disabled='disabled'>上一页</a></td>";
}
if($this->getcurrentpage()<$this->gettotalpage())
{//有下一页
$pagenav.="<td nowrap='nowrap' style='font-size: 12px'> <a href='".$this->geturl()."?".$this->getpageparam()."=$nextpg$otherparam'>下一页</a></td>";
}
else
{
$pagenav.="<td nowrap='nowrap' style='font-size: 12px'> <a disabled='disabled'>下一页</a></td>";
}
if($this->getcurrentpage()>=$this->gettotalpage())
{//没有下一页
$pagenav.="<td nowrap='nowrap' style='font-size: 12px'>>></td><td nowrap='nowrap' style='font-size: 12px'><a disabled='disabled'>尾页</a></td>";
}
else
{
$pagenav.="<td nowrap='nowrap' style='font-size: 12px'>>></td><td nowrap='nowrap' style='font-size: 12px'><a href='".$this->geturl()."?".$this->getpageparam()."=".$this->gettotalpage()."$otherparam'>尾页</a></td>";
}
//下拉跳转列表,循环列出所有页码:
$onchange=$otherparam!=""? 'window.location="'.$this->url.'?'.$this->getpageparam().'="+this.value+"'.$otherparam.'"':'window.location="'.$this->url.'?'.$this->getpageparam().'="+this.value';
$pagenav.="<td nowrap='nowrap' style='font-size: 12px'> 共<font color=red>".$this->gettotalpage()."</font>页</td><td nowrap='nowrap' style='font-size: 12px'> 第<font color=red>".$this->getcurrentpage()."</font>页</td><td nowrap='nowrap' style='font-size: 12px'> 转到第</td><td nowrap='nowrap'><select name='topage' size='1' onchange='$onchange'>";
for($i=1;$i<=$this->gettotalpage();$i++)
{
if($i==$this->getcurrentpage())
{
$pagenav.="<option value='$i' selected>$i</option>\n";
}
else
{
$pagenav.="<option value='$i'>$i</option>\n";
}
}
$pagenav.="</select></td><td nowrap='nowrap' style='font-size: 12px'>页</td>";
$pagenav.="</tr></table>";
return $pagenav;
}
//方法结束
}

?>
iinnersky
2010-03-29 · TA获得超过173个赞
知道答主
回答量:128
采纳率:0%
帮助的人:133万
展开全部
<?php

//连接数据库 start
$conn=mysql_connect("localhost","用户名","密码")or die("Could not connect: " . mysql_error());
mysql_select_db("test",$conn);
mysql_query("set names 'gbk'");//使用GBK中文编码;
//连接数据库 end

$page_size=50;//每页显示信息条数
$url=$_SERVER["REQUEST_URL"];
$url=parse_url($url);
$url=$url[path];

$numq=mysql_query("SELECT * FROM `表名` ");
$num=mysql_num_rows($numq);//
$page_first=1;
$page_last=ceil($num/$page_size);//获得总页数

/***********************************head**************************************************/
echo "共".$num."条记录,共".$page_last."页"."<br>";//显示 总记录数 总页数

//若当前页数为第二页及其以后则显示 首页 上一页 start
if($page_num>1){
echo "<a href=$url?page=".$page_first.">首页</a> " .
"<a href=$url?page=".($page_num-1).">上一页</a> " ;
}
//若当前页数为第二页及其以后显示 首页 上一页 end
/*************************************************************************************/
//每页十个数字导航 start
if(($page_num+10)<=$page_last){
for($i=1;$i<=10;$i++){
echo "<a href=$url2?page=".($page_num+$i-1).">"."第".($page_num+$i-1)."页>> "."</a>";
}
}else{
for($i=$page_num;$i<=$page_last;$i++){
echo "<a href=$url2?page=".$i.">"."第".$i."页>> "."</a>";
}
}
//每页十个数字导航 end
/*************************************************************************************/
if($page_num<$page_last){
echo "<a href=$url?page=".($page_num+1).">下一页</a>".
"<a href=$url?page=".$page_last.">尾页</a> ";
}
/*************************************************************************************/
//下面是以前写的例子 根据自己数据改一下
$sql="SELECT * FROM `page` limit $page_nums,$page_size order by `日期` DESC";/// ASC 正序 有段时间没动PHP啦 但愿没错
$query=mysql_query($sql);
echo "<table border=1><tr bgcolor=\"#336633\"><th>姓名</th><th>性别</th></tr>";

while($row=mysql_fetch_array($query)){//echo $row;Array /echo $row[1];张1张2张3
echo "<tr ><td>";
echo $row[name];
echo "</td>";
echo "<td>";
echo $row[sex];
echo "</td></tr>";
}

echo "</table>";
echo "<br>";

?>
/*//下面的内容不必写
echo "共".$num."条记录!".
"<a href=$url?page=".$page_first.">首页</a> " .
"<a href=$url?page=".($page_num-1).">上一页</a> " .
"<a href=$url?page=".($page_num+1).">下一页</a>".
"<a href=$url?page=".$page_last.">尾页</a> ";
echo"<script language=\"javascript\">
function go(){
window.location.href=se.value
}
</script>";

echo "<select onchange=\"go()\" name=\"se\">";
for ($k=1;$k<=$page_last;$k++){
echo "<option value=".$url."?page="."$k>".$k."</option>";
}
echo "</select>";*/
//php100 有PHP系统的视频教程 有分页专题
//用PHP语法写的 写PHP时没用过DW 可能有问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xwen1983
2010-03-29 · TA获得超过210个赞
知道小有建树答主
回答量:143
采纳率:0%
帮助的人:124万
展开全部
首先你要知道查出来的有多少条记录
使用函数
mysql_num_rows();
然后用循环输出每页的链接
<a href="<?php printf("%s?pageNum_cb=%d%s", $currentPage, 0, $queryString_cb); ?>">第一页</a>
这里面的0,表示第一页的话。也就是说
<a href="<?php printf("%s?pageNum_cb=%d%s", $currentPage, 2, $queryString_cb); ?>">第一页</a>
表示第二也。
而你需要做的就是改下连接的字符串
<a href="<?php printf("%s?pageNum_cb=%d%s", $currentPage, 0, $queryString_cb); ?>">1</a>
<a href="<?php printf("%s?pageNum_cb=%d%s", $currentPage, 0, $queryString_cb); ?>">2</a>
<a href="<?php printf("%s?pageNum_cb=%d%s", $currentPage, 0, $queryString_cb); ?>">3</a>
以此类推,应该就可以,因为代码并不全,所以只能给你些提示,下面的还要靠你自己去理解。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
喜伶赫骊英
2019-04-26 · TA获得超过1161个赞
知道小有建树答主
回答量:1356
采纳率:100%
帮助的人:6.1万
展开全部
首先你要知道查出来的有多少条记录
使用函数
mysql_num_rows();
然后用循环输出每页的链接
<a
href="<?php
printf("%s?pageNum_cb=%d%s",
$currentPage,
0,
$queryString_cb);
?>">第一页</a>
这里面的0,表示第一页的话。也就是说
<a
href="<?php
printf("%s?pageNum_cb=%d%s",
$currentPage,
2,
$queryString_cb);
?>">第一页</a>
表示第二也。
而你需要做的就是改下连接的字符串
<a
href="<?php
printf("%s?pageNum_cb=%d%s",
$currentPage,
0,
$queryString_cb);
?>">1</a>
<a
href="<?php
printf("%s?pageNum_cb=%d%s",
$currentPage,
0,
$queryString_cb);
?>">2</a>
<a
href="<?php
printf("%s?pageNum_cb=%d%s",
$currentPage,
0,
$queryString_cb);
?>">3</a>
以此类推,应该就可以,因为代码并不全,所以只能给你些提示,下面的还要靠你自己去理解。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
祖芬顿悟
2019-11-20 · TA获得超过1204个赞
知道小有建树答主
回答量:1437
采纳率:94%
帮助的人:6.3万
展开全部
首先你要知道查出来的有多少条记录
使用函数
mysql_num_rows();
然后用循环输出每页的链接
<a
href="<?php
printf("%s?pageNum_cb=%d%s",
$currentPage,
0,
$queryString_cb);
?>">第一页</a>
这里面的0,表示第一页的话。也就是说
<a
href="<?php
printf("%s?pageNum_cb=%d%s",
$currentPage,
2,
$queryString_cb);
?>">第一页</a>
表示第二也。
而你需要做的就是改下连接的字符串
<a
href="<?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式