<?
$niandu=$_GET['niandu'];$link=mssql_connect("MyServer2k","data","1234");
mssql_select_db("data",$link);
$sql="select id,niandu,yuefen,name,time from a where niandu='$_GET[niandu]' order by yuefen desc";
$dataset=mssql_query($sql,$link);
$totalCount=mssql_num_rows($dataset);
$P=$_GET[P];
if(!$P|| $P<1) $P=1;$PageNum=15;
$start = $PageNum * ($P-1);
?>
<table width="750" border="0" align="center" cellpadding="0" cellspacing="1">
<tr align="center">
<td width="10%" height="20">序号</td>
<td width="10%" height="20">年度</td>
<td width="10%" height="20">月份</td>
<td width="25%" height="20">名称</td>
<td width="20%" height="20">发布时间</td>
<td width="20%" height="20">管理</td>
</tr>
<?
$sql1="select TOP ".$PageNum*($P)." id,niandu,yuefen,name,time from a where niandu='$_GET[niandu]' order by yuefen desc";
$dataset1=mssql_query($sql1,$link);
$count=mssql_num_rows($dataset1);for ($i=$start;$i<$count;$i++){
list($id,$niandu,$yuefen,$name,$time)=mssql_fetch_row($dataset1);?>
<tr>
<td height="20"><? echo $i+1?></td>
<td height="20"> <? echo $niandu?></td>
<td height="20"> <? echo $yuefen?></td>
<td height="20"> <? echo $name?></td>
<td height="20"> <? echo $time?></td>
</tr>
<?
}
?>
</table>
15条记录一页,不知道为什么翻到下页时总是取表的第1条记录而不是第16条,请大家帮忙看看
$niandu=$_GET['niandu'];$link=mssql_connect("MyServer2k","data","1234");
mssql_select_db("data",$link);
$sql="select id,niandu,yuefen,name,time from a where niandu='$_GET[niandu]' order by yuefen desc";
$dataset=mssql_query($sql,$link);
$totalCount=mssql_num_rows($dataset);
$P=$_GET[P];
if(!$P|| $P<1) $P=1;$PageNum=15;
$start = $PageNum * ($P-1);
?>
<table width="750" border="0" align="center" cellpadding="0" cellspacing="1">
<tr align="center">
<td width="10%" height="20">序号</td>
<td width="10%" height="20">年度</td>
<td width="10%" height="20">月份</td>
<td width="25%" height="20">名称</td>
<td width="20%" height="20">发布时间</td>
<td width="20%" height="20">管理</td>
</tr>
<?
$sql1="select TOP ".$PageNum*($P)." id,niandu,yuefen,name,time from a where niandu='$_GET[niandu]' order by yuefen desc";
$dataset1=mssql_query($sql1,$link);
$count=mssql_num_rows($dataset1);for ($i=$start;$i<$count;$i++){
list($id,$niandu,$yuefen,$name,$time)=mssql_fetch_row($dataset1);?>
<tr>
<td height="20"><? echo $i+1?></td>
<td height="20"> <? echo $niandu?></td>
<td height="20"> <? echo $yuefen?></td>
<td height="20"> <? echo $name?></td>
<td height="20"> <? echo $time?></td>
</tr>
<?
}
?>
</table>
15条记录一页,不知道为什么翻到下页时总是取表的第1条记录而不是第16条,请大家帮忙看看
<tr>
<td align="center"> <?=GlobalClass::turnPage($totalCount,$PHP_SELF."?&niandu=$_GET[niandu]&");?></td>
</tr>function turnPage($Total,$href,$P,$PageNum,$NotOut=false)
{
$page=$Total/$PageNum;
$totalP=(int)$page;
if($totalP!=$page)
$totalP=$totalP+1;
if(!$P || $P<1) $P=1;
if($P>$totalP && $totalP) $P=$totalP; if($Total)
{
$Out1="共有".$Total."条记录 当前第".$P."页/共".$totalP."页";
if($P>1)
{
$Out2.="<a href='$href"."P=1'>首页</a> ";
$Out2.="<a href='$href"."P=".($P-1)."'>上页</a> ";
}
else
{
$Out2.="首页 ";
$Out2.="上页 ";
}
if($P!=$totalP)
{
$Out2.="<a href='$href"."P=".($P+1)."'>下页</a> ";
$Out2.="<a href='$href"."P=$totalP'>尾页</a> ";
}
else
{
$Out2.="下页 ";
$Out2.="尾页 ";
}
}
return $Out2;
}
试一试
他们都不提供 limit 子句,而只有 top 子句你需要这样写
select top 每页行数 * from ( select top 页数*每页行数 * from 表 order by id desc )
$sql1="select TOP ".$PageNum." * from ( select top ".$PageNum*($P)." * from a) where niandu='$_GET[niandu]' order by yuefen desc";出现Warning: mssql_query() [function.mssql-query]: message: Incorrect syntax near the keyword 'where'. (severity 15)
$sql1="select TOP ".$PageNum." * from ( select top ".$PageNum*($P)." * from a) where niandu='$_GET[niandu]' order by yuefen desc";改为$sql1="select TOP ".$PageNum." * from ( select top ".$PageNum*($P)." * from a) where niandu='".$_GET[niandu]."' order by yuefen desc";