应用环境win2000+iis5+php4.02+sqlserver7.0
<?
#$sql:sql语句
#$result_array:传回的结果放到数组里
#$num_rows:传回的总纪录数
#$num_pagesize:每页显示的纪录数
#$num_page:第几页
#$comm:数据库连接号
function pagination($sql,&$result_array,&$num_rows,$num_pagesize,$num_page){
include "../db.php";//取得$conn连接号 conn
//把*用count(*)代替,取总的纪录数,本例适合 select * from ...这样的查询
$sql_sum=str_replace("select * ","select count(*) as yjnum ",$sql);
$result_id=odbc_do($conn,$sql_sum);
$num_rows=odbc_result($result_id,"yjnum");
//取查询结果到数组里
$result_id=odbc_do($conn,$sql);
$yjfields_num=odbc_num_fields($result_id);
if ($num_rows%$num_pagesize){$all_pages=(int)($num_rows/$num_pagesize+1);
}else{$all_pages=(int)($num_rows/$num_pagesize);}
$j=0;
if ($num_page<$all_pages){
$tmp=$num_pagesize;
}else{
$tmp=$num_rows%$num_pagesize;
}
while($j<$tmp){
$i=0;
odbc_fetch_into($result_id,($num_page-1)*$num_pagesize+$j+1,&$line_array);
while($i<=$yjfields_num){
$result_array[$j][$i]=$line_array[$i];
$i++;
}
$j++;
}
}
?>
|