// 老的项目运行有点慢,公司为其新增了一台主机,将数据拷贝后写了一个带分页的列表来看看该主机的运行效率;从数据库读取数据存储到数组每个人都会,分页不是网上的累或者啥方法,公司之前的人写的,我拿来改了改,希望对大家有帮助。(重点是:如何对数组分页显示) php最牛的地方就是他的数组结构能够完成复杂的多维的转换根据自己的需求
// 这个是效果链接 http://icp.sundns.com/testphp/testphp.php (注:除分页链接可点,其他未做处理)
<?php
// 为查询数据做准备***************start 下面代码没啥用的为下面查询数据服务端的, 你可以根据自己喜欢查数据然后放到数组里,
ini_set ( "include_path" , ".:../../../common:../../../include" ) ;
include_once ( "pageinit.inc.php" ) ;
include_once ( "PDC.CICPZtxx.class" ) ;
include_once( "PUC.Functions.inc" );
include_once( "LOG.CSecurityLog.class" );
include_once( "miibeian/RPC.CMiiBeianCall.class.php");
$pCICPBJCa = new CICPZtxx();
$strItemNavListBlockName = "item_nav_list";
$strItemNavItemBlockName = "item_nav_item";
$strListBlockName = "icp_list";
$strItemBlockName = "icp_item";
$strSortOrder = "id";
$nSortOrderDesc = 1;
if ( !isset( $start_item ) ) {
$nStartItem = 0;
} else {
$nStartItem = $start_item;
}
$module_name = "admin_bjcaicp_list";
$nItemPerPage = 20;
//$aLocator = array();
$aLocator = array(
"sortorder_".$strSortOrder => $nSortOrderDesc
);
if( $_REQUEST["search_dwmc"] != "" ) {
$aLocator["search_dwmc"] = trim($_REQUEST["search_dwmc"]);
$nStartItem = 0;
}
if( $_REQUEST["search_zjhm"] != "" ) {
$aLocator["search_zjhm"] = trim($_REQUEST["search_zjhm"]);
$nStartItem = 0;
}
// 为查询数据做准备***************end
// 分页开始*********start************
$nTotalItem = $pCICPBJCa->getcount( $aLocator ); // 记录总数
//前一页
$nPrevItem = $nStartItem - $nItemPerPage;
if ( $nPrevItem < 0 ) {
$nPrevItem = 0;
}
//下一页
$nNextItem = $nStartItem + $nItemPerPage;
if ( $nTotalItem <= $nNextItem ) {
$nNextItem = $nStartItem;
}
$aDatas = $pCICPBJCa->getlist( $nStartItem, $nItemPerPage, $aLocator ); // // 数据数组
$nTotalPage = ceil( $nTotalItem / $nItemPerPage );
$nMaxPage = 10;
$nStartPage = ceil( $nStartItem / $nItemPerPage ) - $nMaxPage / 2;
if ( $nStartPage < 0 ) {
$nStartPage = 0;
}
$nEndPage = min( $nStartPage + $nMaxPage, $nTotalPage );
$current_page=0;
$aItemNavVars = array();
for ( $i = $nStartPage; $i < $nEndPage; ++$i ) {
$nPageNum = $i + 1;
if ( $i * $nItemPerPage == $nStartItem ) {
$strPageNum = "<font color=\"red\">".$nPageNum."</font>";
$current_page = $nPageNum;
} else {
$strPageNum = $nPageNum;
}
$aItemNavVars[sizeof( $aItemNavVars )] = array(
"start_item" => strval( $i * $nItemPerPage ),
"page_num" => $strPageNum,
"search" => "".$strSearch,
);
}
$aPageVar = array_merge( $aLocator, array(
"total_item" => $nTotalItem,
"current_page" => $current_page,
"prevpage_start_item" => $nPrevItem,
"nextpage_start_item" => $nNextItem,
"finalpage_start_item" => ($nTotalPage-1)*$nItemPerPage,
"start_item" => strval( $nStartItem + 1 ),
"start_item_bak" => strval( $nStartItem),
"end_item" => $nEndItem,
"prev_item" => $nPrevItem,
"next_item" => $nNextItem,
"sort_order" => "".$strSortOrder,
"sort_order_desc" => "".$nSortOrderDesc,
"searchblockstyle"=>$searchBlockStyle,
"module_name"=>$module_name,
"module_hint"=>$module_hint,
) );
if ( 0 < sizeof( $aDatas ) ) {
$aPageVar[$strItemNavItemBlockName] = $aItemNavVars;
$aVariables = array();
for ( $i = 0; $i < sizeof( $aDatas ); $i++ ) {
$operation="";
$this_operation='<A href="admin.php?module=admin_bjcaicp_edit&ID='.$aDatas[$i]['id'].'">浏览</A>';
$operation=$operation." ".$this_operation;
if (EMPTY($viewmodule)) $viewmodule="admin_bjcaicp_list";
$wzxxinfo = $pCICPBJCa->getbyid( $aDatas[$i]['id'] ); // wzmc syurl
//echo "<pre>";
//print_r($wzxxinfo[Wzxx]);
$wzxxarr = $ymxxarr = array();
foreach($wzxxinfo[Wzxx] as $va){
$wzxxarr[wzmc][$i] = $va[wzmc];
$wzxxarr[syurl][$i] = $va[syurl];
}
// ym
foreach($wzxxinfo[Wzxx] as $vat){
foreach($vat[Ymxx] as $vall){
$ymxxarr[ym][$i] = $vall[ym];
}
}
//echo "<pre>";
//print_r($ymxxarr);
$aVariables[] = array(
"id" => $aDatas[$i]['id'],
"dwmc" => $aDatas[$i]['dwmc'],
"zjhm" => $aDatas[$i]['zjhm'],
"ztbah" => $aDatas[$i]['ztbah'],
//"wzmc" => $aDatas[$i]['wzmc'],
"wzmc" => implode("<br/>",$wzxxarr[wzmc]),
"syurl" => implode("<br/>",$wzxxarr[syurl]),
"ym" => implode("<br/>",$ymxxarr[ym]),
"update_on" => $aDatas[$i]['update_on'],
"opresult" => $aDatas[$i]['opresult'],
"op" => $aDatas[$i]['op'],
//"state" => $GLOBALS["map_state"][$aDatas[$i]['state']],
"state" => $aDatas[$i]['state'],
"operation"=>$operation,
"viewmodule"=>$viewmodule,
);
}
//echo "<pre>";
//print_r($aVariables);exit;
$aPageVar[$strItemBlockName] = $aVariables;
} else {
$aPageVar[$strListBlockName] = array();
$aPageVar[$strItemNavListBlockName] = array();
}
$aPageVar["message"] = $strErrorMessage;
if(!isset($aPageVar["search_dwmc"])) {
$aPageVar["search_dwmc"] = "";
}
if(!isset($aPageVar["search_zjhm"])) {
$aPageVar["search_zjhm"] = "";
}
$pagelinks='';
$pagelinks='<A href="testphp.php?start_item=0'.'">首页</A> ';
$pagelinks=$pagelinks.'<A href="testphp.php?start_item='.$nPrevItem.'">上一页</A> ';
for ($i=0;$i<count($aPageVar[$strItemNavItemBlockName]);$i++){
$nav = $aPageVar[$strItemNavItemBlockName][$i];
$pagelinks=$pagelinks.'<A href="testphp.php?start_item='.$nav['start_item'].'">'.$nav['page_num'].'</A> ';
}
$pagelinks=$pagelinks.'<A href="testphp.php?start_item='.$nNextItem.'">下一页</A> ';
$pagelinks=$pagelinks.'<A href="testphp.php?start_item='.(($nTotalPage-1)*$nItemPerPage).'">尾页</A> ';
$aPageVar["page_links"] = $pagelinks;
$aPageVar["head_links"] = 'admin.php?module='.$module_name.'&search='.$strSearch.'&sort_order_desc='.(1 - $nSortOrderDesc).'&criteria='.$criteriasearch;
// // 分页结束*********end************
?>
<LINK href="primacommonstyle.css" type=text/css rel=stylesheet>
<TABLE class=listtable cellSpacing=0 border="1px" cellPadding=0 width="100%">
<FORM name=form_list action="" method=post>
<INPUT type=hidden value=$module_name$ name=module>
<TBODY>
<TR>
<TD nowrap class=TitleTD><A class=brownface href="$head_links$&sort_order=id">编号</A>
<SCRIPT>fn_DisplayOrderImg('id','$sort_order$','$sort_order_desc$')</SCRIPT>
</TD>
<TD nowrap class=TitleTD><A class=brownface href="$head_links$&sort_order=dwmc">主办单位名称</A>
<SCRIPT>fn_DisplayOrderImg('dwmc','$sort_order$','$sort_order_desc$')</SCRIPT>
</TD>
<TD nowrap class=TitleTD><A class=brownface href="$head_links$&sort_order=ztbah">备案/许可证号</A>
<SCRIPT>fn_DisplayOrderImg('ztbah','$sort_order$','$sort_order_desc$')</SCRIPT>
</TD>
<TD nowrap class=TitleTD>网站名称</TD>
<TD nowrap class=TitleTD>首页网址</TD>
<TD nowrap class=TitleTD>域名列表</TD>
<TD nowrap class=TitleTD><A class=brownface href="$head_links$&sort_order=ztbah">备案阶段</A>
<SCRIPT>fn_DisplayOrderImg('state','$sort_order$','$sort_order_desc$')</SCRIPT>
</TD>
<TD class=TitleTD align=middle width=65>
<SELECT οnchange=this.form.submit() name=locate_op id="selected_op">
<OPTION value="" selected>来源操作</OPTION>
<OPTION value=1>新增备案</OPTION>
<OPTION value=2>新增网站</OPTION>
<OPTION value=3>新增接入</OPTION>
<OPTION value=4>备案变更</OPTION>
<OPTION value=6>注销主体</OPTION>
<OPTION value=7>注销网站</OPTION>
<OPTION value=5>注销接入</OPTION></SELECT> </TD>
<SCRIPT> SelectOptionInit("selected_op","$locate_op$");</SCRIPT>
<TD nowrap class=TitleTD align=middle width=50>操作</TD></TR>
<!-- icp_list/ -->
<!-- icp_item/ -->
<?php foreach($aPageVar[icp_item] as $key=>$val){ ?>
<TR onMouseOver="this.style.backgroundColor ='#E1EAF5'" οnmοuseοut="this.style.backgroundColor ='#FFFFFF'">
<TD class=ContentTD><a href="admin.php?module=$viewmodule$&IspZtid=$id$"><?php echo $val['id'] ?></a></TD>
<TD class=ContentTD><a href="?module=admin_user&locate_id=$member_id$"><img border="0" align="absmiddle" src="images/zh-CN/mid_icon_member.gif" width="16" alt="用户信息"></a><?php echo $val['dwmc'] ?></TD>
<TD class=ContentTD><?php echo $val['ztbah'] ?></TD>
<TD class=ContentTD><?php echo $val['wzmc'] ?></TD>
<TD class=ContentTD><div style="width:150px; overflow:hidden; text-overflow:ellipsis"><?php echo $val['syurl'] ?></div></TD>
<TD class=ContentTD><div style="width:160px; overflow:hidden; text-overflow:ellipsis"><?php echo $val['ym'] ?></div></TD>
<TD class=ContentTD align=middle><?php echo $val['state'] ?></TD>
<TD class=ContentTD align=middle><?php echo $val['op'] ?></TD>
<TD nowrap class=ContentTD align=middle><?php echo $val['operation'] ?></TD>
</TR>
<?php } ?>
<!-- /icp_item -->
<!-- /icp_list -->
</FORM>
<TR>
<TD colSpan=10>
<TABLE cellSpacing=4 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD align=left>共 <?php echo $aPageVar['total_item'] ?> 条 当前显示第 <?php echo $aPageVar['current_page'] ?> 页</TD>
<TD align=right> <?php echo $aPageVar["page_links"] ?></TD>
</TR></TBODY></TABLE>
</TD></TR>
</TBODY></TABLE>
// css样式可以不用写,以表格的形式展现就行