如何每页显示20行,只提取全部数据的前50行或100行? http://www.csdn.net/expert/topic/1027/1027771.xml?temp=.5635797 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 给你一个分页的类.<? //【警告】:未经许可请勿随便修改 //------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------ // // 【文件名】: c_mysql_page.inc // 【作 用】: MySQL分页函数类 // 【作 者】: 天灰 // // 【最后修改日期】: 2001/07/16[cxx] // 【变量定义规则】:‘C_’=字符型,‘I_’=整型,‘N_’=数字型,‘L_’=布尔型,‘A_’=数组型 //------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------ // ※c_mysql_page() 构造函数,设置分页初始参数 // ※page_standard() 分页显示函数(标准型) // ※GetRecordStartEnd() 获得取记录的开始结束位置 // ※getmaxpage() 获得记录集的最大页数 // ※checkpage() 检查当前页数是否在0和最大页数之间 //------------------------------------------------------------------------------------------ class c_mysql_page { //------------------------------------------------------------------------------------------ // 变量定义 //------------------------------------------------------------------------------------------ var $I_pagesize = 10; //每页记录数 var $C_width = '90%'; //表格宽度 //------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------ // 函数名:c_mysql_page ($I_pagesize, $c_width) // 作 用:构造函数,设置分页初始参数 // 参 数:$I_pagesize, $c_width // 返回值:变量 // 备 注:构造函数随着类的建立而自动执行 //------------------------------------------------------------------------------------------ function c_mysql_page ($I_pagesize=10, $C_width='85%') { if (isset($I_pagesize)){$this -> I_pagesize = $I_pagesize;} if (isset($C_width)){$this -> C_width = $C_width;} } //------------------------------------------------------------------------------------------ // 函数名:page_standard($I_sumrecord,$C_page,$C_url="self",$C_otherpara="") // 作 用:分页显示函数(标准型) // 参 数:$I_sumrecord 记录总数 // $C_url URL // $C_page URL后的参数 // $C_otherpara URL后的参数2 // $bgcolor 表格的背景颜色 // 返回值:<table> // 备 注:无 //------------------------------------------------------------------------------------------ function page_standard($I_sumrecord,$C_page,$C_url="self",$C_otherpara="",$bgcolor="") { //检查参数 if ((!$I_sumrecord) || (!$C_page)){AlertExit("参数不全!");} global $PHP_SELF,$$C_page; //全局变量$C_page //检测$I_pagesize是否合法 if($this -> I_pagesize < 1){AlertExit("请设定每页的记录数!");} if($I_sumrecord < 1){return false;} //检测总记录数 if($C_url == "self"){$C_url = $PHP_SELF;} //设置URL $I_page = $$C_page; //重新赋当前页值 $I_maxpage = $this -> getmaxpage($I_sumrecord); //取出总页数 $I_page = $this -> checkPage($I_maxpage,$I_page); //检查当前页号 //显示表 echo "<table align=center width=". $this -> C_width ." bgcolor=". $bgcolor .">"; echo "<tr>"; echo "<td align=left>共<font color=red><b>" . $I_sumrecord. "</b></font>条主题 当前第<font color=red><b>" . $I_page . "/". $I_maxpage. "</b></font>页</td>"; if ($I_maxpage > 1) { echo "<td align=right>"; if($I_page > 1 && $I_page < $I_maxpage) { echo "<a href= $C_url?$C_page=1&$C_otherpara>首页</a> "; $pre=$I_page-1; echo "<a href=$C_url?$C_page=$pre&$C_otherpara>上页</a> "; $next=$I_page+1; echo "<a href=$C_url?$C_page=$next&$C_otherpara>下页</a> "; echo "<a href=$C_url?$C_page=$I_maxpage&$C_otherpara>末页</a> "; } elseif($I_page == 1) { $next = $I_page+1; echo "<a href=$C_url?$C_page=$next&$C_otherpara>下页</a> "; echo "<a href=$C_url?$C_page=$I_maxpage&$C_otherpara>末页</a> "; } elseif($I_page == $I_maxpage) { echo "<a href=$C_url?$C_page=1&$C_otherpara>首页</a> "; $pre=$I_page-1; echo "<a href=$C_url?$C_page=$pre&$C_otherpara>上页</a> "; } //显示select // echo "转到"; // echo "<SELECT style=font-size:9pt NAME=gopage class='ff' OnChange=WindowLocation($C_url,$C_otherpara,$C_page)>";//OnChange=".WindowLocation($C_url,$C_otherpara,$C_page)." // for($i=1;$i <= $I_maxpage;$i++) // { //如$i==$I_page,此选项选中(selected) // if($i == $I_page){echo "<option value=$i selected>$i </option>";} // else{echo "<option value=$i>$i </option>";} // } // echo "</SELECT>页</td>"; } echo "</tr>"; echo "</table>"; } //------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------ // 函数名:GetRecordStartEnd($I_page) // 作 用:获得取记录的开始结束位置 // 参 数:$I_page 当前页 // 返回值:全局变量$I_rowstart,$I_pagesize // 备 注:无 //------------------------------------------------------------------------------------------ function GetRecordStartEnd($I_page) { global $I_rowstart; global $I_pagesize; $I_rowstart = ($I_page-1)*$this -> I_pagesize; $I_pagesize = $this -> I_pagesize; } //------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------ // 函数名:getmaxpage($intRecordNum) // 作 用:获得记录集的最大页数 // 参 数:$I_sumrecord 记录总数 // 返回值:最大页数$I_maxpage(整型) // 备 注:无 //------------------------------------------------------------------------------------------ function getmaxpage($I_sumrecord) { if (!$I_sumrecord){AlertExit("参数不全!");}//检查参数 $I_maxpage = ceil($I_sumrecord / $this -> I_pagesize); return $I_maxpage; } //------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------ // 函数名:checkpage($I_maxpage,$I_page) // 作 用:检查当前页数是否在0和最大页数之间 // 参 数:$I_maxpage 最大页数 // $I_page 当前页数 // 返回值:当前页数$I_page(整型) // 备 注:无 //------------------------------------------------------------------------------------------ function checkpage($I_maxpage,$I_page) { if($I_maxpage == 0){$I_page = $I_maxpage;} if ($I //$strnum是取得满足条件的数据条数,$str书去的数据,$recordperpage是每页显示的行数(informix数据库)改成相应的数据库即可,把列表矿选择的值传给$recordperpage就可以了 function display_data_pages($strnum,$str,$recordperpage) {$conn_id= db_connect();$r_id=ifx_query($strnum,$conn_id);$tmprow = ifx_fetch_row($r_id,1); for (reset($tmprow);$fieldname=key($tmprow);next($tmprow)){ $fieldvalue=$tmprow[$fieldname]; $rownums=intval($fieldvalue);}ifx_free_result($r_id);$pages=ceil($rownums/$recordperpage); //总页数if ($pages==0) $pages=1;//判断偏移量参数是否传递给了脚本,如果没有就使用默认值0global $offset;if (empty($offset)){ $offset=1;}$currentpage=ceil($offset/$recordperpage); //显示当前页echo("共有".$rownums."条记录 ");echo("分".$pages."页显示 ");echo("当前页:".$currentpage."<br>\n");$endset=$offset+$recordperpage;$res_id = ifx_query($str,$conn_id);$row = ifx_fetch_row($res_id,1); for($k=1;$k<$offset;$k++) $row = ifx_fetch_row($res_id,"NEXT"); for($j=$offset;$j<$endset&&$j<=$rownums;$j++) { echo "<tr>"; for(reset($row);$fieldname=key($row);next($row)){ $fieldvalue=$row[$fieldname]; $fdvalue=adjust_fieldvalue($fieldname,$fieldvalue); echo "<td> ".$fdvalue."</td>";} echo "</tr>"; $row=ifx_fetch_row($res_id,"NEXT"); } //要写出到所有页面的链接echo "</table><br>";/* echo "选择第 ";for ($i=1; $i <= $pages; $i++){ $newoffset=($recordperpage*($i-1))+1; echo " <a href=\"$PHP_SELF?offset=$newoffset\">$i</a> ";} echo " 页";echo "<br>";*/$nextoffset=$recordperpage*$currentpage+1;$prevoffset=$recordperpage*($currentpage-2)+1;$firstoffset=1;$lastoffset=($pages-1)*$recordperpage+$firstoffet+1;$strf="href=\"$PHP_SELF?offset=$firstoffset\"";$strl="href=\"$PHP_SELF?offset=$lastoffset\"";//判断是否需要上一页连接if (($currentpage>1) && ($currentpage<=$pages)) $stra="href=\"$PHP_SELF?offset=$prevoffset\""; else $stra="";//判断是否需要下一页连接if (($pages!=0) && ($currentpage<$pages)) $strb="href=\"$PHP_SELF?offset=$nextoffset\"";else $strb=""; echo "<table width=\"40%\" border=\"0\" cellspacing=\"0\"> <tr> <td> <div align=\"center\"><a $strf>首页</a></div> </td> <td> <div align=\"center\"><a $stra>前页</a></div> </td> <td> <div align=\"center\"><a $strb>后页</a></div> </td> <td> <div align=\"center\"><a $strl>尾页</a></div> </td> </tr></table>"; echo "<br><br><br>";ifx_free_result($res_id);ifx_close($conn_id); } 关键是获取页码变量如$page,设置每页SIZE为20,如:$PAGESIZE=20;然后用select语句的limit参数即可.如:$pagesize=20;$start=($page-1) * $pagesize;$Qry=mysql_query("select * from yourtable where (filter) limit $start, $pagesize",$dbconnect);..... 客户端页面必须纪录当前页(利用 SESSION/COOKIE/URL 之类),这是关键页面上应该有相应的页面跳转链接,类似<a href=xxx.php?page=xx>可以做成“一溜”,像"1 2 3 4 .."也可以用一个小编辑框、下拉框之类根据客户端传过来的 $page 选页,数据库查询办法用楼上的就可以了 添加一条空白记录的函数是? php读取并更新一条数据 抗震救灾网建设思路 Cannot modify header information - headers already sent by ? 我用PHP Editor看着书编辑了一个PHP的代码,然后保存了以php为扩展名的文件,我要问的是:怎么运行这个文件啊?? linux下php的权限问题 新手请教PHP怎么批量循环打印出四位数的数字? 求购一个网上数码冲印系统 请求帮助!!!!急!!! thinkphp 关于调试 php 的问题。 如何实现在线听歌的?
<?
//【警告】:未经许可请勿随便修改
//------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------------
//
// 【文件名】: c_mysql_page.inc
// 【作 用】: MySQL分页函数类
// 【作 者】: 天灰
//
// 【最后修改日期】: 2001/07/16[cxx]
// 【变量定义规则】:‘C_’=字符型,‘I_’=整型,‘N_’=数字型,‘L_’=布尔型,‘A_’=数组型
//------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------------
// ※c_mysql_page() 构造函数,设置分页初始参数
// ※page_standard() 分页显示函数(标准型)
// ※GetRecordStartEnd() 获得取记录的开始结束位置
// ※getmaxpage() 获得记录集的最大页数
// ※checkpage() 检查当前页数是否在0和最大页数之间
//------------------------------------------------------------------------------------------
class c_mysql_page
{
//------------------------------------------------------------------------------------------
// 变量定义
//------------------------------------------------------------------------------------------
var $I_pagesize = 10; //每页记录数
var $C_width = '90%'; //表格宽度
//------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------
// 函数名:c_mysql_page ($I_pagesize, $c_width)
// 作 用:构造函数,设置分页初始参数
// 参 数:$I_pagesize, $c_width
// 返回值:变量
// 备 注:构造函数随着类的建立而自动执行
//------------------------------------------------------------------------------------------
function c_mysql_page ($I_pagesize=10, $C_width='85%')
{
if (isset($I_pagesize)){$this -> I_pagesize = $I_pagesize;}
if (isset($C_width)){$this -> C_width = $C_width;}
} //------------------------------------------------------------------------------------------
// 函数名:page_standard($I_sumrecord,$C_page,$C_url="self",$C_otherpara="")
// 作 用:分页显示函数(标准型)
// 参 数:$I_sumrecord 记录总数
// $C_url URL
// $C_page URL后的参数
// $C_otherpara URL后的参数2
// $bgcolor 表格的背景颜色
// 返回值:<table>
// 备 注:无
//------------------------------------------------------------------------------------------
function page_standard($I_sumrecord,$C_page,$C_url="self",$C_otherpara="",$bgcolor="")
{
//检查参数
if ((!$I_sumrecord) || (!$C_page)){AlertExit("参数不全!");}
global $PHP_SELF,$$C_page; //全局变量$C_page
//检测$I_pagesize是否合法
if($this -> I_pagesize < 1){AlertExit("请设定每页的记录数!");}
if($I_sumrecord < 1){return false;} //检测总记录数
if($C_url == "self"){$C_url = $PHP_SELF;} //设置URL
$I_page = $$C_page; //重新赋当前页值
$I_maxpage = $this -> getmaxpage($I_sumrecord); //取出总页数
$I_page = $this -> checkPage($I_maxpage,$I_page); //检查当前页号
//显示表
echo "<table align=center width=". $this -> C_width ." bgcolor=". $bgcolor .">";
echo "<tr>";
echo "<td align=left>共<font color=red><b>" . $I_sumrecord. "</b></font>条主题 当前第<font color=red><b>" . $I_page . "/". $I_maxpage. "</b></font>页</td>";
if ($I_maxpage > 1)
{
echo "<td align=right>";
if($I_page > 1 && $I_page < $I_maxpage)
{
echo "<a href= $C_url?$C_page=1&$C_otherpara>首页</a> ";
$pre=$I_page-1;
echo "<a href=$C_url?$C_page=$pre&$C_otherpara>上页</a> ";
$next=$I_page+1;
echo "<a href=$C_url?$C_page=$next&$C_otherpara>下页</a> ";
echo "<a href=$C_url?$C_page=$I_maxpage&$C_otherpara>末页</a> ";
}
elseif($I_page == 1)
{
$next = $I_page+1;
echo "<a href=$C_url?$C_page=$next&$C_otherpara>下页</a> ";
echo "<a href=$C_url?$C_page=$I_maxpage&$C_otherpara>末页</a> ";
}
elseif($I_page == $I_maxpage)
{
echo "<a href=$C_url?$C_page=1&$C_otherpara>首页</a> ";
$pre=$I_page-1;
echo "<a href=$C_url?$C_page=$pre&$C_otherpara>上页</a> ";
}
//显示select
// echo "转到";
// echo "<SELECT style=font-size:9pt NAME=gopage class='ff' OnChange=WindowLocation($C_url,$C_otherpara,$C_page)>";//OnChange=".WindowLocation($C_url,$C_otherpara,$C_page)."
// for($i=1;$i <= $I_maxpage;$i++)
// {
//如$i==$I_page,此选项选中(selected)
// if($i == $I_page){echo "<option value=$i selected>$i </option>";}
// else{echo "<option value=$i>$i </option>";}
// }
// echo "</SELECT>页</td>";
}
echo "</tr>";
echo "</table>";
}
//------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------------
// 函数名:GetRecordStartEnd($I_page)
// 作 用:获得取记录的开始结束位置
// 参 数:$I_page 当前页
// 返回值:全局变量$I_rowstart,$I_pagesize
// 备 注:无
//------------------------------------------------------------------------------------------
function GetRecordStartEnd($I_page)
{
global $I_rowstart;
global $I_pagesize;
$I_rowstart = ($I_page-1)*$this -> I_pagesize;
$I_pagesize = $this -> I_pagesize;
}
//------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------------
// 函数名:getmaxpage($intRecordNum)
// 作 用:获得记录集的最大页数
// 参 数:$I_sumrecord 记录总数
// 返回值:最大页数$I_maxpage(整型)
// 备 注:无
//------------------------------------------------------------------------------------------
function getmaxpage($I_sumrecord)
{
if (!$I_sumrecord){AlertExit("参数不全!");}//检查参数
$I_maxpage = ceil($I_sumrecord / $this -> I_pagesize);
return $I_maxpage;
}
//------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------------
// 函数名:checkpage($I_maxpage,$I_page)
// 作 用:检查当前页数是否在0和最大页数之间
// 参 数:$I_maxpage 最大页数
// $I_page 当前页数
// 返回值:当前页数$I_page(整型)
// 备 注:无
//------------------------------------------------------------------------------------------
function checkpage($I_maxpage,$I_page)
{
if($I_maxpage == 0){$I_page = $I_maxpage;}
if ($I
function display_data_pages($strnum,$str,$recordperpage)
{
$conn_id= db_connect();
$r_id=ifx_query($strnum,$conn_id);
$tmprow = ifx_fetch_row($r_id,1);
for (reset($tmprow);$fieldname=key($tmprow);next($tmprow)){
$fieldvalue=$tmprow[$fieldname];
$rownums=intval($fieldvalue);
}
ifx_free_result($r_id);
$pages=ceil($rownums/$recordperpage); //总页数
if ($pages==0) $pages=1;
//判断偏移量参数是否传递给了脚本,如果没有就使用默认值0global $offset;
if (empty($offset))
{
$offset=1;
}
$currentpage=ceil($offset/$recordperpage); //显示当前页
echo("共有".$rownums."条记录 ");
echo("分".$pages."页显示 ");
echo("当前页:".$currentpage."<br>\n");
$endset=$offset+$recordperpage;
$res_id = ifx_query($str,$conn_id);
$row = ifx_fetch_row($res_id,1);
for($k=1;$k<$offset;$k++)
$row = ifx_fetch_row($res_id,"NEXT");
for($j=$offset;$j<$endset&&$j<=$rownums;$j++)
{
echo "<tr>";
for(reset($row);$fieldname=key($row);next($row)){
$fieldvalue=$row[$fieldname];
$fdvalue=adjust_fieldvalue($fieldname,$fieldvalue);
echo "<td> ".$fdvalue."</td>";
}
echo "</tr>";
$row=ifx_fetch_row($res_id,"NEXT");
}
//要写出到所有页面的链接
echo "</table><br>";
/*
echo "选择第 ";
for ($i=1; $i <= $pages; $i++)
{
$newoffset=($recordperpage*($i-1))+1;
echo " <a href=\"$PHP_SELF?offset=$newoffset\">$i</a> ";
}
echo " 页";
echo "<br>";
*/$nextoffset=$recordperpage*$currentpage+1;
$prevoffset=$recordperpage*($currentpage-2)+1;
$firstoffset=1;
$lastoffset=($pages-1)*$recordperpage+$firstoffet+1;
$strf="href=\"$PHP_SELF?offset=$firstoffset\"";
$strl="href=\"$PHP_SELF?offset=$lastoffset\"";
//判断是否需要上一页连接
if (($currentpage>1) && ($currentpage<=$pages)) $stra="href=\"$PHP_SELF?offset=$prevoffset\"";
else $stra="";
//判断是否需要下一页连接
if (($pages!=0) && ($currentpage<$pages)) $strb="href=\"$PHP_SELF?offset=$nextoffset\"";
else $strb="";
echo "<table width=\"40%\" border=\"0\" cellspacing=\"0\">
<tr>
<td>
<div align=\"center\"><a $strf>首页</a></div>
</td>
<td>
<div align=\"center\"><a $stra>前页</a></div>
</td>
<td>
<div align=\"center\"><a $strb>后页</a></div>
</td>
<td>
<div align=\"center\"><a $strl>尾页</a></div>
</td>
</tr></table>";
echo "<br><br><br>";
ifx_free_result($res_id);
ifx_close($conn_id);
}
如:
$pagesize=20;
$start=($page-1) * $pagesize;
$Qry=mysql_query("select * from yourtable where (filter) limit $start, $pagesize",$dbconnect);
.....
<a href=xxx.php?page=xx>
可以做成“一溜”,像"1 2 3 4 .."
也可以用一个小编辑框、下拉框之类根据客户端传过来的 $page 选页,数据库查询办法用楼上的就可以了