php 分页函数 带参数说明
关于分页函式的使用说明:
#### 检索分页函式 ####
Int $HALT - 检索结果仅分1页时是否(1/0)显示页码条
Int $LRLIST - (页码条显示页码数-1)/2
Int $ECHOCNT - 检索时每页显示记录的数量
Int $paper - 页数,预提取:$paper=$HTTP_GET_VARS[paper];
Varchar $table - 数据表名,预附值:$table="db.table";
Varchar $where - 检索条件,预附值:$where="where field='value'";
Varchar $enwhere - 将原$where进行两次base64_encode()编码后以GET的方式提交
Varchar $splitstr - 页码条输出字串,执行函式后在相应的位置执行 echo $splitstr;
函式调用前需获取变量:
$paper=$HTTP_GET_VARS[paper];
$sumcnt=$HTTP_GET_VARS[sumcnt];
$enwhere=$HTTP_GET_VARS[enwhere];
Return (Varchar $where) - 分页后检索语句的检索条件
注意:本函式需调用出错处理函式:nerror($error);
<?php
//分页函式
function splitlist($HALT, $LRLIST, $ECHOCNT, $paper, $table, $where, $page_id, $userid) {
global $splitstr, $sumcnt;
if ($paper == "" || $sumcnt == "") {
$query = "select count(*) as num from $table $where";
$result = http: //www.phprm.com_query($query);
$row = mysql_fetch_array($result);
$sumcnt = $row["num"];
if ($sumcnt == 0) {
nerror("该版内还没有选择发布新闻!");
}
$paper = 1;
}
$sumpaper = ($sumcnt - $sumcnt % $ECHOCNT) / $ECHOCNT;
if (($sumcnt % $ECHOCNT) != 0) $sumpaper+= 1;
if ($sumpaper == 1 && $HALT == 0) return ($where);
$enwhere = base64_encode(base64_encode($where));
if (($LRLIST * 2 + 1) < $sumpaper) {
if (($paper - $LRLIST) < 2) {
$tract = 1;
$sub = $LRLIST * 2 + 1;
} else if (($paper + $LRLIST) >= $sumpaper) {
$tract = $sumpaper - ($LRLIST * 2);
$sub = $sumpaper;
} else {
$tract = $paper - $LRLIST;
$sub = $paper + $LRLIST;
}
} else {
$tract = 1;
$sub = $sumpaper;
}
$uppaper = $paper - 1;
$downpaper = $paper + 1;
$startcnt = ($paper - 1) * $ECHOCNT;
$where.= " limit ${startcnt},${ECHOCNT}";
if ($tract > 1) {
$splitstr = "【 << ";
} else $splitstr = "【 << ";
for ($i = $tract; $i <= $sub; $i++) {
if ($i != $paper) $splitstr.= "" . $i . " ";
else $splitstr.= "" . $i . " ";
}
if ($sub != $sumpaper) $splitstr.= ">> 】";
else $splitstr.= ">> 】";
return ($where);
}本文地址:http://www.phprm.com/code/d26a808a3d77d29a6f775e9fc1a7bc84.html
转载随意,但请附上文章地址:-)