实现要求:将得到的检索结果,以每页20条记录输出到客户端。(每次输出的上限为20)
实现方法:
例:实现检索方法,方便客户端调用。 返回$result(20条记录)
$pagingmin = ($page_id-1) * 20;//根据客户端传回的page_id确定需要输出的记录id最小值
$pagingmax = $page_id * 20;//根据客户端传回的page_id确定需要输出的记录id最大值
function doOrderInfoSearch($page_id){
global $db;
$nowdate = getNowDateYYYYMMDD();

$SQL = "SELECT c.ORDER_ID, ".
"c.CREATE_DATE, ".
"c.ORDER_FIRST_NAME, ".
"c.ORDER_LAST_NAME, ".
"c.ORDER_ADDRESS, ".
"c.PAYMENT_METHOD_ID, ".
"SUM(a.PRODUCT_COUNT*b.PRODUCT_PRICE) AS amount, ".
"c.ACTUAL_SEND_DATE ".
"FROM order_product_tbl a, product_master b,order_master c ".
"WHERE TRUE ";
if($this->create_date <> "")$SQL .= " and c.CREATE_DATE='$this->create_date'";
if($this->delivery_date <> "")$SQL .= " and c.DELIVERY_DATE='$this->delivery_date'";
if($this->delivery_flag == DELIVERY_STATE_ALL)$SQL .= "";
if($this->delivery_flag == DELIVERY_STATE_UNDO)$SQL .= " and c.ACTUAL_SEND_DATE > $nowdate";
if($this->delivery_flag == DELIVERY_STATE_DOWN)$SQL .= " and c.ACTUAL_SEND_DATE < $nowdate";
if($this->order_status == ORDER_STATUS_ALL)$SQL .= "";
if($this->order_status == ORDER_STATUS_COMMON)$SQL .= " and c.ORDER_STATUS=".ORDER_STATUS_COMMON;
if($this->order_status == ORDER_STATUS_CANCEL)$SQL .= " and c.ORDER_STATUS=".ORDER_STATUS_CANCEL;
if($this->payment_flag == PAYMENT_FLAG_ALL)$SQL .= "";
if($this->payment_flag == PAYMENT_FLAG_COMMON)$SQL .= " and c.PAYMENT_FLAG=".PAYMENT_FLAG_COMMON;
if($this->payment_flag == PAYMENT_FLAG_CANCEL)$SQL .= " and c.PAYMENT_FLAG=".PAYMENT_FLAG_CANCEL;
$SQL.=" and a.PRODUCT_ID=b.PRODUCT_ID and a.ORDER_ID = c.ORDER_ID group by c.ORDER_ID";
$rs=$db->query($SQL);
$pagingmin = ($page_id-1) * 20;
$pagingmax = $page_id * 20;
$result = array();
if ((! DB::isError($rs))) {
$cntIndex = 0;
$rowIndex = 0;
while ($row = $rs->fetchRow()){
if($rowIndex >= $pagingmin && $rowIndex < $pagingmax){
$row = Common_record($row);
$result[$cntIndex] = $this->getRecord($row);
$cntIndex++;
}
$rowIndex++;
}
$this->pagenum = ceil($rs->numRows()/20);//将总计页数输出到客户端为生成页码序列提供初始值
return $result;
}
}
1调用doOrderInfoSearch($page_id)将返回值显示到<table>中即可。
2 生成页码序列方法:将<div id='setpage'></div>写入htm
<script type="text/javascript">
<!--
var totalpage,pagesize,cpage,count,curcount,outstr;
//初期化pageNum
cpage = <?=$page_id?>;
totalpage = <?=$searchcase->pagenum?>;
pagesize = 10;
outstr = "";
function gotopage(target)

...{
cpage = target;
doSubmitWithModeAndPage('page.php?id=19','DO_SEARCH',cpage);

}
function setpage()

...{

if(totalpage<=10)...{
for (count=1;count<=totalpage;count++)

...{ if(count!=cpage)

...{
outstr = outstr + "<a href='#' onclick='gotopage("+count+")'>"+count+"</a>";

}else...{
outstr = outstr + "<span class='current' >"+count+"</span>";
}
}
}

if(totalpage>10)...{
if(parseInt((cpage-1)/10) == 0)

...{
for (count=1;count<=10;count++)

...{ if(count!=cpage)

...{
outstr = outstr + "<a href='javascript:void(0)' onclick='gotopage("+count+")'>"+count+"</a>";

}else...{
outstr = outstr + "<span class='current'>"+count+"</span>";
}
}
outstr = outstr + "<a href='javascript:void(0)' onclick='gotopage("+count+")'> next </a>";
}
else if(parseInt((cpage-1)/10) == parseInt(totalpage/10))

...{
outstr = outstr + "<a href='javascript:void(0)' onclick='gotopage("+(parseInt((cpage-1)/10)*10)+")'>previous</a>";
for (count=parseInt(totalpage/10)*10+1;count<=totalpage;count++)

...{ if(count!=cpage)

...{
outstr = outstr + "<a href='javascript:void(0)' onclick='gotopage("+count+")'>"+count+"</a>";

}else...{
outstr = outstr + "<span class='current'>"+count+"</span>";
}
}
}
else

...{
outstr = outstr + "<a href='javascript:void(0)' onclick='gotopage("+(parseInt((cpage-1)/10)*10)+")'>previous</a>";
for (count=parseInt((cpage-1)/10)*10+1;count<=parseInt((cpage-1)/10)*10+10;count++)

...{
if(count!=cpage)

...{
outstr = outstr + "<a href='javascript:void(0)' onclick='gotopage("+count+")'>"+count+"</a>";

}else...{
outstr = outstr + "<span class='current'>"+count+"</span>";
}
}
outstr = outstr + "<a href='javascript:void(0)' onclick='gotopage("+count+")'> next </a>";
}
}
document.getElementById("setpage").innerHTML = "<div id='setpage'><span id='info'> Total "+totalpage+" Page | Page "+cpage+"</span>" + outstr + "</div>";
outstr = "";
}
//-->
</script>