我的,贴个给你,有些长,自己看看,然后改吧~<table width="90%" border="0" cellpadding="1" cellspacing="1" bgcolor="#84B4DB" align="center">
<tr align="center">
<td width="5%" height="20" nowrap><span class="style1">次序</span></td>
<td width="18%"><span class="style1">产品图片</span></td>
<td width="24%"><span class="style1">产品名称</span></td>
<td width="42%"><span class="style1">产品简介</span></td>
<td width="11%"><span class="style1">操作</span></td>
</tr>
<?
//查询结果
if ($_GET['action']=="search" or $_POST['action']=="search")
{
$keyword=$_POST['keyword'];
$pclass=$_POST['pclass'];
$where="where 1=1 ";
if ($pclass!=0) $where.=" and pClass1='$pclass'";
if ($keyword!="") $where.=" and pName like '%$keyword%'";
if ($yu!="nothing") $where.=" and pLanguage='$yu'";
$query = "select * from tbl_product ".$where." order by is_order";
}else{
$pclass=$_GET['pclass'];
if ($pclass!="")
{
$query="select * from tbl_product where pClass1='$pclass' order by is_order";
}else{
$query="select * from tbl_product order by is_order";
}
}
$result=mysql_query($query) or die(mysql_error());
//--取回数据
$count=0;
while($row=mysql_fetch_array($result)){
$rs[$count]['id']=$row['id'];
$rs[$count]['pName']=$row['pName'];
$rs[$count]['pImgSmall']=$row['pImgSmall'];
$rs[$count]['pSpec']=$row['pSpec'];
$rs[$count]['pClass1']=$row['pClass1'];
$rs[$count]['is_New']=$row['is_New'];
$rs[$count]['is_order']=$row['is_order'];
$rs[$count]['pPrice']=$row['pPrice'];
$rs[$count]['pLanguage']=$row['pLanguage'];
$count++;
}
//--获取$page值
$page=$_GET['page'];
if (@$page=="")
{
$page=$_POST['page'];
if ($page=="")
$page = 0;
}
//--计算页数
$count = count($rs);
$msgPerPage=10; //每页显示数
$start = @$page*$msgPerPage;
$end = $start+$msgPerPage;
if ($end>$count)
$end = $count;
$totalpage = ceil($count/$msgPerPage);
//输出记录
for ($i=$start;$i<$end;$i++)
{
//得到产品类别
$class1=$rs[$i]['pClass1'];
$res=mysql_query("select * from tbl_p_class where id='$class1'");
$res1=mysql_fetch_array($res);
$cn_classname=$res1['cn_name'];
$en_classname=$res1['en_name'];
?>
<tr bgcolor="#FFFFFF">
<td height="53" align="center"><?=$rs[$i]['is_order']?></td>
<td align="center">
<?
if ($rs[$i]['pImgSmall']!="")
{
echo "<img src=upfile/".$rs[$i]['pImgSmall'].">";
}else{
echo "暂无图片";
}
?>
</td>
<td bgcolor="#FFFFFF">
<?
echo " ".$rs[$i]['pName'];
if ($rs[$i]['is_New']=="1")
{
echo "<font color=red>(新)</font>";
}
echo "<p> 属于类别:".$cn_classname." ".$en_classname;
if ($rs[$i]['pLanguage']=="1") $language="中文";
if ($rs[$i]['pLanguage']=="2") $language="English";
if ($rs[$i]['pLanguage']=="0") $language="中文/English";
echo "<br> 发布版本:".$language;
?>
<br>
</td>
<td>
<?
echo nl2br($rs[$i]['pSpec']);
echo "<br><br><font color=red>会员价格:";
if ($rs[$i]['pPrice']!="")
{
echo $rs[$i]['pPrice'];
}else{
echo "暂无会员价格信息……";
}
echo "</font>";
?>
</td>
<td align="center" nowrap><a href="modify_product.php?pid=<?=$rs[$i]['id']?>">修改</a> |
<a href="javascript:del_member('<?=$rs[$i]['id']?>');">删除</a></td>
</tr>
<?
}
if ($count==0)
{
echo "<tr><td bgcolor=#FFFFFF colspan=5 align=center height=60>暂无记录……</td></tr>";
}
?>
</table>
<table width="80%" border="0" cellpadding="1" align="center">
<tr>
<td align="right">
<?
echo " 共有".$count."条";
echo " 页码:<font color=red>".($page+1)."</font>/".$totalpage." ";
//开始制作导航条----------------------------------------------
if ($page == "0")
{
echo "<font color=#666666>首页 | 上一页</font>";
}else {
echo "<a href=javascript:viewPage(1);>首页</a> | <a href=javascript:viewPage(".$page.")> 上一页 </a>";
}
if ($page == $totalpage-1)
{
echo "<font color=#666666>| 下一页 | 尾页 ";
}else{
echo "| <a href=javascript:viewPage(".($page+2).")>下一页</a> | <a href=javascript:viewPage(".$totalpage.")>尾页</a>";
}
?>
转到第
<input type='text' name='goto_page1' style='border: 1px solid rgb(0,0,0)' size=4 maxlength=4>
页
<input style='height:20;WIDTH: 42px;' class='button' hidefocus type='button' value='跳转' name='cmd_goto' onClick='javascript:viewPage(document.all.goto_page1.value);'>
</td>
</tr>
</table>
<!---------开始嵌入代码(为跳转导航)--------->
<script language=javascript>
function viewPage(ipage){
if (ipage<=0) ipage=1;
document.frm_page.page.value=ipage-1;
document.frm_page.submit();
}
</script>
<form action="<?echo $PHP_SELF;?>" method=post name="frm_page">
<input type="hidden" name="page" >
<input type="hidden" name="keyword" value="<?=$keyword?>">
<input type="hidden" name="pclass" value="<?=$pclass?>">
<input type="hidden" name="yu" value="<?=$yu?>">
<input type="hidden" name="action" value="search">
</form>
<tr align="center">
<td width="5%" height="20" nowrap><span class="style1">次序</span></td>
<td width="18%"><span class="style1">产品图片</span></td>
<td width="24%"><span class="style1">产品名称</span></td>
<td width="42%"><span class="style1">产品简介</span></td>
<td width="11%"><span class="style1">操作</span></td>
</tr>
<?
//查询结果
if ($_GET['action']=="search" or $_POST['action']=="search")
{
$keyword=$_POST['keyword'];
$pclass=$_POST['pclass'];
$where="where 1=1 ";
if ($pclass!=0) $where.=" and pClass1='$pclass'";
if ($keyword!="") $where.=" and pName like '%$keyword%'";
if ($yu!="nothing") $where.=" and pLanguage='$yu'";
$query = "select * from tbl_product ".$where." order by is_order";
}else{
$pclass=$_GET['pclass'];
if ($pclass!="")
{
$query="select * from tbl_product where pClass1='$pclass' order by is_order";
}else{
$query="select * from tbl_product order by is_order";
}
}
$result=mysql_query($query) or die(mysql_error());
//--取回数据
$count=0;
while($row=mysql_fetch_array($result)){
$rs[$count]['id']=$row['id'];
$rs[$count]['pName']=$row['pName'];
$rs[$count]['pImgSmall']=$row['pImgSmall'];
$rs[$count]['pSpec']=$row['pSpec'];
$rs[$count]['pClass1']=$row['pClass1'];
$rs[$count]['is_New']=$row['is_New'];
$rs[$count]['is_order']=$row['is_order'];
$rs[$count]['pPrice']=$row['pPrice'];
$rs[$count]['pLanguage']=$row['pLanguage'];
$count++;
}
//--获取$page值
$page=$_GET['page'];
if (@$page=="")
{
$page=$_POST['page'];
if ($page=="")
$page = 0;
}
//--计算页数
$count = count($rs);
$msgPerPage=10; //每页显示数
$start = @$page*$msgPerPage;
$end = $start+$msgPerPage;
if ($end>$count)
$end = $count;
$totalpage = ceil($count/$msgPerPage);
//输出记录
for ($i=$start;$i<$end;$i++)
{
//得到产品类别
$class1=$rs[$i]['pClass1'];
$res=mysql_query("select * from tbl_p_class where id='$class1'");
$res1=mysql_fetch_array($res);
$cn_classname=$res1['cn_name'];
$en_classname=$res1['en_name'];
?>
<tr bgcolor="#FFFFFF">
<td height="53" align="center"><?=$rs[$i]['is_order']?></td>
<td align="center">
<?
if ($rs[$i]['pImgSmall']!="")
{
echo "<img src=upfile/".$rs[$i]['pImgSmall'].">";
}else{
echo "暂无图片";
}
?>
</td>
<td bgcolor="#FFFFFF">
<?
echo " ".$rs[$i]['pName'];
if ($rs[$i]['is_New']=="1")
{
echo "<font color=red>(新)</font>";
}
echo "<p> 属于类别:".$cn_classname." ".$en_classname;
if ($rs[$i]['pLanguage']=="1") $language="中文";
if ($rs[$i]['pLanguage']=="2") $language="English";
if ($rs[$i]['pLanguage']=="0") $language="中文/English";
echo "<br> 发布版本:".$language;
?>
<br>
</td>
<td>
<?
echo nl2br($rs[$i]['pSpec']);
echo "<br><br><font color=red>会员价格:";
if ($rs[$i]['pPrice']!="")
{
echo $rs[$i]['pPrice'];
}else{
echo "暂无会员价格信息……";
}
echo "</font>";
?>
</td>
<td align="center" nowrap><a href="modify_product.php?pid=<?=$rs[$i]['id']?>">修改</a> |
<a href="javascript:del_member('<?=$rs[$i]['id']?>');">删除</a></td>
</tr>
<?
}
if ($count==0)
{
echo "<tr><td bgcolor=#FFFFFF colspan=5 align=center height=60>暂无记录……</td></tr>";
}
?>
</table>
<table width="80%" border="0" cellpadding="1" align="center">
<tr>
<td align="right">
<?
echo " 共有".$count."条";
echo " 页码:<font color=red>".($page+1)."</font>/".$totalpage." ";
//开始制作导航条----------------------------------------------
if ($page == "0")
{
echo "<font color=#666666>首页 | 上一页</font>";
}else {
echo "<a href=javascript:viewPage(1);>首页</a> | <a href=javascript:viewPage(".$page.")> 上一页 </a>";
}
if ($page == $totalpage-1)
{
echo "<font color=#666666>| 下一页 | 尾页 ";
}else{
echo "| <a href=javascript:viewPage(".($page+2).")>下一页</a> | <a href=javascript:viewPage(".$totalpage.")>尾页</a>";
}
?>
转到第
<input type='text' name='goto_page1' style='border: 1px solid rgb(0,0,0)' size=4 maxlength=4>
页
<input style='height:20;WIDTH: 42px;' class='button' hidefocus type='button' value='跳转' name='cmd_goto' onClick='javascript:viewPage(document.all.goto_page1.value);'>
</td>
</tr>
</table>
<!---------开始嵌入代码(为跳转导航)--------->
<script language=javascript>
function viewPage(ipage){
if (ipage<=0) ipage=1;
document.frm_page.page.value=ipage-1;
document.frm_page.submit();
}
</script>
<form action="<?echo $PHP_SELF;?>" method=post name="frm_page">
<input type="hidden" name="page" >
<input type="hidden" name="keyword" value="<?=$keyword?>">
<input type="hidden" name="pclass" value="<?=$pclass?>">
<input type="hidden" name="yu" value="<?=$yu?>">
<input type="hidden" name="action" value="search">
</form>
对于表中主键或标识列的情况,直接从原表取数查询,其它情况使用临时表的方法
如果视图或查询结果中有主键,不推荐此方法
如果使用查询语句,而且查询语句使用了order by,则查询语句必须包含top 语句
--感谢csdn.net邹建 --*//*--调用示例
exec p_show '地区资料' exec p_show 'select top 100 percent * from 地区资料 order by 地区名称',5,3,'地区编号,地区名称,助记码'
--*/
CREATE Proc p_show
@QueryStr nvarchar(4000), --表名、视图名、查询语句
@PageSize int=20, --每页的大小(行数)
@PageCurrent int=1, --要显示的页
@FdShow nvarchar (4000)='', --要显示的字段列表,如果查询结果不需要标识字段,需要指定此值,且不包含标识字段
@FdOrder nvarchar (1000)='' --排序字段列表
as
set nocount on
declare @FdName nvarchar(250) --表中的主键或表、临时表中的标识列名
,@Id1 varchar(20),@Id2 varchar(20) --开始和结束的记录号
,@Obj_ID int --对象ID
--表中有复合主键的处理
declare @strfd nvarchar(2000) --复合主键列表
,@strjoin nvarchar(4000) --连接字段
,@strwhere nvarchar(2000) --查询条件
select @Obj_ID=object_id(@QueryStr)
,@FdShow=case isnull(@FdShow,'') when '' then ' *' else ' '+@FdShow end
,@FdOrder=case isnull(@FdOrder,'') when '' then '' else ' order by '+@FdOrder end
,@QueryStr=case when @Obj_ID is not null then ' '+@QueryStr else ' ('+@QueryStr+') a' end--如果显示第一页,可以直接用top来完成
if @PageCurrent=1
begin
select @Id1=cast(@PageSize as varchar(20))
exec('select top '+@Id1+@FdShow+' from '+@QueryStr+@FdOrder)
return
end--如果是表,则检查表中是否有标识更或主键
if @Obj_ID is not null and objectproperty(@Obj_ID,'IsTable')=1
begin
select @Id1=cast(@PageSize as varchar(20))
,@Id2=cast((@PageCurrent-1)*@PageSize as varchar(20)) select @FdName=name from syscolumns where id=@Obj_ID and status=0x80
if @@rowcount=0 --如果表中无标识列,则检查表中是否有主键
begin
if not exists(select 1 from sysobjects where parent_obj=@Obj_ID and xtype='PK')
goto lbusetemp --如果表中无主键,则用临时表处理 select @FdName=name from syscolumns where id=@Obj_ID and colid in(
select colid from sysindexkeys where @Obj_ID=id and indid in(
select indid from sysindexes where @Obj_ID=id and name in(
select name from sysobjects where xtype='PK' and parent_obj=@Obj_ID
)))
if @@rowcount>1 --检查表中的主键是否为复合主键
begin
select @strfd='',@strjoin='',@strwhere=''
select @strfd=@strfd+',['+name+']'
,@strjoin=@strjoin+' and a.['+name+']=b.['+name+']'
,@strwhere=@strwhere+' and b.['+name+'] is null'
from syscolumns where id=@Obj_ID and colid in(
select colid from sysindexkeys where @Obj_ID=id and indid in(
select indid from sysindexes where @Obj_ID=id and name in(
select name from sysobjects where xtype='PK' and parent_obj=@Obj_ID
)))
select @strfd=substring(@strfd,2,2000)
,@strjoin=substring(@strjoin,5,4000)
,@strwhere=substring(@strwhere,5,4000)
goto lbusepk
end
end
end
else
goto lbusetemp/*--使用标识列或主键为单一字段的处理方法--*/
lbuseidentity:
exec('select top '+@Id1+@FdShow+' from '+@QueryStr
+' where '+@FdName+' not in(select top '
+@Id2+' '+@FdName+' from '+@QueryStr+@FdOrder
+')'+@FdOrder
)
return/*--表中有复合主键的处理方法--*/
lbusepk:
exec('select '+@FdShow+' from(select top '+@Id1+' a.* from
(select top 100 percent * from '+@QueryStr+@FdOrder+') a
left join (select top '+@Id2+' '+@strfd+'
from '+@QueryStr+@FdOrder+') b on '+@strjoin+'
where '+@strwhere+') a'
)
return/*--用临时表处理的方法--*/
lbusetemp:
select @FdName='[ID_'+cast(newid() as varchar(40))+']'
,@Id1=cast(@PageSize*(@PageCurrent-1) as varchar(20))
,@Id2=cast(@PageSize*@PageCurrent-1 as varchar(20))exec('select '+@FdName+'=identity(int,0,1),'+@FdShow+'
into #tb from'+@QueryStr+@FdOrder+'
select '+@FdShow+' from #tb where '+@FdName+' between '
+@Id1+' and '+@Id2
)
GO
/**
* Mysql資料庫的分頁
*
* @author Avenger <[email protected]>
* @version 1.0
* @lastupdate 2003-04-08 11:11:33
*
*
* 使用實例:
* $p = new show_page; //建立新對像
* $p->file="ttt.php"; //設置文件名,默認為當前頁
* $p->pvar="pagecount"; //設置頁面傳遞的參數,默認為p
* $p->setvar(array("a" => '1', "b" => '2')); //設置要傳遞的參數,要注意的是此函數必須要在 set 前使用,否則變量傳不過去
* $p->set(20,2000,1); //設置相關參數,共三個,分別為'頁面大小'、'總記錄數'、'當前頁(如果為空則自動讀取GET變量)'
* $p->output(0); //輸出,為0時直接輸出,否則返回一個字符串
* echo $p->limit(); //輸出Limit子句。在sql語句中用法為 "SELECT * FROM TABLE LIMIT {$p->limit()}";
*
*/
class show_page { /**
* 頁面輸出結果
*
* @var string
*/
var $output; /**
* 使用該類的文件,默認為 PHP_SELF
*
* @var string
*/
var $file; /**
* 頁數傳遞變量,默認為 'p'
*
* @var string
*/
var $pvar = "p"; /**
* 頁面大小
*
* @var integer
*/
var $psize; /**
* 當前頁面
*
* @var ingeger
*/
var $curr; /**
* 要傳遞的變量數組
*
* @var array
*/
var $varstr; /**
* 總頁數
*
* @var integer
*/
var $tpage; /**
* 分頁設置
*
* @access public
* @param int $pagesize 頁面大小
* @param int $total 總記錄數
* @param int $current 當前頁數,默認會自動讀取
* @return void
*/
function set($pagesize=20,$total,$current=false) {
global $HTTP_SERVER_VARS,$HTTP_GET_VARS; $this->tpage = ceil($total/$pagesize);
if (!$current) {$current = $HTTP_GET_VARS[$this->pvar];}
if ($current>$this->tpage) {$current = $this->tpage;}
if ($current<1) {$current = 1;} $this->curr = $current;
$this->psize = $pagesize; if (!$this->file) {$this->file = $HTTP_SERVER_VARS['PHP_SELF'];} if ($this->tpage > 1) {
if ($current>10) {
$this->output.='<a href='.$this->file.'?'.$this->pvar.'='.($current-10).($this->varstr).' title="前十頁"><<<</a> ';
}
if ($current>1) {
$this->output.='<a href='.$this->file.'?'.$this->pvar.'='.($current-1).($this->varstr).' title="前一頁"><<</a> ';
} $start = floor($current/10)*10;
$end = $start+9; if ($start<1) {$start=1;}
if ($end>$this->tpage) {$end=$this->tpage;} for ($i=$start; $i<=$end; $i++) {
if ($current==$i) {
$this->output.='<font color="red">'.$i.'</font> '; //輸出當前頁數
} else {
$this->output.='<a href="'.$this->file.'?'.$this->pvar.'='.$i.$this->varstr.'">['.$i.']</a> '; //輸出頁數
}
} if ($current<$this->tpage) {
$this->output.='<a href='.$this->file.'?'.$this->pvar.'='.($current+1).($this->varstr).' title="下一頁">>></a> ';
}
if ($this->tpage>10 && ($this->tpage-$current)>=10 ) {
$this->output.='<a href='.$this->file.'?'.$this->pvar.'='.($current+10).($this->varstr).' title="下十頁">>>></a>';
}
}
} /**
* 要傳遞的變量設置
*
* @access public
* @param array $data 要傳遞的變量,用數組來表示,參見上面的例子
* @return void
*/
function setvar($data) {
foreach ($data as $k=>$v) {
$this->varstr.='&'.$k.'='.urlencode($v);
}
} /**
* 分頁結果輸出
*
* @access public
* @param bool $return 為真時返回一個字符串,否則直接輸出,默認直接輸出
* @return string
*/
function output($return = false) {
if ($return) {
return $this->output;
} else {
echo $this->output;
}
} /**
* 生成Limit語句
*
* @access public
* @return string
*/
function limit() {
return (($this->curr-1)*$this->psize).','.$this->psize;
}} //End Class
?>
巨快,分页演示,通用表维护
http://www.adr.gov.cn/download/panyuguang/adrnew/dict_List.asp
下载
http://www.adr.gov.cn/download/panyuguang/adrnew.rar
http://community.csdn.net/Expert/topic/3086/3086769.xml?temp=.71719
<?PHP
$sql = "select count(*) as amount from ".$table;
$result = mysql_query($sql);
$row =mysql_fetch_array($result);
$amount = $row['amount'];
// 获取当前页数
if( isset($_GET['page']) ){
$page=intval($_GET['page']);
}else{
$page=1;
}
$page_size=10;// 每页数量
/* 记算总共有多少页
* 如果总数据量小于$PageSize,那么只有一页
*取总数据量除以每页数的余数
*如果有余数,则页数等于总数据量除以每页数的结果取整再加一
*如果没有余数,则页数等于总数据量除以每页数的结果
*/
if($amount){
if($amount<$page_size){
$page_count = 1;
}
if($amount%$page_size){
$page_count = (int)($amount/$page_size) + 1;
}else{
$page_count = $amount/$page_size;
}
}else{
$page_count = 0;
} // 翻页链接
$page_string = '';
if( $page == 1 ){
$page_string .= '首页|上一页|';
}else{
$page_string .= '<a href=?page=1>首页</a>|<a href=?page='.($page-1).'>上一页</a>|';
}
if( ($page == $page_count) || ($page_count == 0) ){
$page_string .= '下一页|尾页';
}else{
$page_string .= '<a href=?page='.($page+1).'>下一页</a>|<a href=?page='.$page_count.'>尾页</a>';
}//获取数据,以二维数组格式返回结果
if( $amount ){
$sql = "select * from ".$table." order by id desc limit ".($page-1)*$page_size.",".$page_size;
$result = mysql_query($sql);
while ($rows =mysql_fetch_array($result)){
$rowset[] = $rows;
}
}else{
$rowset = array();
}
?>翻页连接显示输出用:
echo $page_string就可以了
页面数据用
foreach($rowset as $rs){
$rs[id]
;
}
就可以了!