海量数据,恩,感觉用存储过程分页比较好...CREATE PROCEDURE pGetArtList @pagesize int, @pageindex int AS DECLARE @strSQL varchar(5000) IF @pageindex = 1 --第一页的情况 BEGIN SET @strSQL = 'SELECT TOP ' + STR(@pagesize) + ' * FROM [mytable] ORDER BY [id] DESC' END ELSE --不是第一页的情况 BEGIN SET @strSQL = 'SELECT TOP ' + STR(@pagesize) + ' * FROM [mytable] WHERE ([id] not in (SELECT TOP ' + STR((@pageindex-1)*@pagesize) + ' [id] FROM [mytable] ORDER BY [id] DESC)) ORDER BY [id] DESC' END EXEC(@strSQL) GO
{
$page = $page;
}
else
{
$page=1;
}
$pagesize = 3;//填写数组内容,注意格式:若数组里需要使用小角引号,使用(\"内容\")
$arr_str=array(
"数组内容一",
"数组内容二",
"数组内容三",
"更多的数4",
"数组内容5",
"数组内容6",
"数组内容7",
"数组内容8",
"数组内容9",
);
$max_page = ceil(count($arr_str)/$pagesize);
$sj = ($page-1)*$pagesize;
for($i=0;$i<$pagesize;$i++)//打印各页内容
{
echo $arr_str[$sj]."<br>";
$sj +=1;
}//根据数组元素项写页码
print "<div id=\"page\" style=\"font-size:10pt;color:#ccc\">第 ";
for($j=1;$j<=$max_page;$j++)
{
print "<a href=\"$PHP_SELF?page=$j\">$j</a> ";
}
print "页 </div>";
@pagesize int,
@pageindex int
AS
DECLARE @strSQL varchar(5000)
IF @pageindex = 1 --第一页的情况
BEGIN
SET @strSQL = 'SELECT TOP ' + STR(@pagesize) + ' * FROM [mytable] ORDER BY [id] DESC'
END
ELSE --不是第一页的情况
BEGIN
SET @strSQL = 'SELECT TOP ' + STR(@pagesize) + ' * FROM [mytable]
WHERE ([id] not in (SELECT TOP ' + STR((@pageindex-1)*@pagesize) + ' [id]
FROM [mytable]
ORDER BY [id] DESC)) ORDER BY [id] DESC'
END
EXEC(@strSQL)
GO