php 是否有任何可以轻松实现的简单分页框架?
Is there any simple pagination framework for php which can be easily implementable?
我的数据库中的表很少,想对页面上的几个表实现分页。
我在每个页面中编写了自己的分页代码,只要它是 required。
是否有任何可以轻松实现的框架工作,例如,当我将查询传递给方法或 class 时,它必须使用适当的 pagination.Would 生成 ui 任何人都建议我任何框架工作做这个任务。
编辑:
我已经指定我编写了自己的分页代码,这与 @veerendra 给出的一个解决方案非常接近,但是对于 60 个不同页面的分页,我需要编写该逻辑。
我要求一个框架来减轻我编写动态分页代码的负担,它应该在 php 而不是 jquery 或 javascript 中。
由于它们的逻辑将驻留在客户端,因此无法对大型数据集进行操作。
在下面试试这个 link 以分页显示数据:
http://code.tutsplus.com/tutorials/how-to-paginate-data-with-php--net-2928
检查 datatables 它是一个很棒的 js table 框架,它允许你
实施 ajax 个调用。
您可以使用 jquery 分页,它既简单又快速。请按照我深入描述的以下步骤进行
获取包含插件和 CSS 主题的 zip here。
第 1 步: 连同 JQuery,在您的页面中包含 jquery.simplePagination.js:
<script type="text/javascript" src="path_to/jquery.js"></script>
<script type="text/javascript" src="path_to/jquery.simplePagination.js"></script>
JQuery 建议使用 1.7.2 或更高版本。旧版本也可以,但我没有测试过。
第 2 步: 可选 - 包含具有 3 个默认主题的 CSS 文件
<link type="text/css" rel="stylesheet" href="path_to/simplePagination.css"/>
如果跳过此步骤,您将需要定义自己的样式或使用 Bootstrap。
步骤 3: 在分页占位符上调用函数:
$(function() {
$(selector).pagination({
items: 100,
itemsOnPage: 10,
cssStyle: 'light-theme'
});
});
如有必要,您可以直接通过"pages"参数指定页数,而不是"items"和"itemsOnPage",插件使用它们来自动计算页数页数。
可用选项
items 整数默认值:1 将用于计算页面的项目总数。
itemsOnPage 整数默认值:1 每页显示的项目数。
pages Integer Optional 如果指定,items 和 itemsOnPage 将不会用于计算页数。
displayedPages 整数默认值:5 导航时应显示多少页码。
允许的最小值:3(上一个、当前和下一个)
edges Integer 默认值:2 在分页的 beginning/ending 处可见多少页码。
currentPage 整数默认值:1 初始化后select立即编辑哪个页面。
hrefTextPrefix String Default: "#page-" 用于构建 href 属性的字符串,添加在页码之前。
hrefTextSuffix String Default: empty string 用于构建 href 属性的另一个字符串,添加在页码之后。
prevText 字符串默认值:"Prev" 要在上一个按钮上显示的文本。
nextText 字符串默认值:"Next" 要在下一个按钮上显示的文本。
labelMap 数组默认值:空数组将用于呈现分页项目的标签集合,替换数字。
cssStyle String 默认值:"light-theme" CSS 主题的 class。
selectOnClick 布尔值默认值:true 如果您不想 select 单击后立即打开页面,则设置为 false。
onPageClick(pageNumber, event) Function Optional 页面被点击时调用的函数。
页码和事件是可选参数。
onInit Function Optional 分页初始化时调用的函数。
可用方法
select页面 - Select 基于页码的页面。
$(function() {
$(selector).pagination('selectPage', pageNumber);
});
上一页 - Select上一页。
$(function() {
$(selector).pagination('prevPage');
});
下一页 - Select下一页。
$(function() {
$(selector).pagination('nextPage');
});
getPagesCount - Returns 总页数。
$(function() {
$(selector).pagination('getPagesCount');
});
getCurrentPage - Returns 当前页码。
$(function() {
$(selector).pagination('getCurrentPage');
});
disable - 禁用分页功能。
$(function() {
$(selector).pagination('disable');
});
启用 - 在之前禁用后启用分页。
$(function() {
$(selector).pagination('enable');
});
destroy - 视觉上破坏分页,保留所有现有设置。
$(function() {
$(selector).pagination('destroy');
});
redraw - 使用现有设置再次绘制分页。 (例如,在你销毁分页后很有用)
$(function() {
$(selector).pagination('redraw');
});
updateItems - 允许动态更改分页呈现的项目数
$(function() {
$(selector).pagination('updateItems', 100);
});
updateItemsOnPage - 允许动态更改每个页面上呈现的项目数
$(function() {
$(selector).pagination('updateItemsOnPage', 20);
});
drawPage - 将页码作为参数并将 "currentPage" 值设置为给定的页码并绘制分页
$(function() {
$(selector).pagination('drawPage', 5);
});
下面是名为 paging.inc.php
的文件
你只需要将 where class 传递给查询,只需要获取计数并将计数变量命名为与文件中相同的名称,然后你将需要设置每页记录和其他参数.
在此之后,您需要触发查询,该查询将从文件中获取带有 limit 变量的记录,这可用于对列表中的列进行排序。
<?
//CODE FOR PAGING
if(!isset($num_totrec)) $num_totrec = $db_recs[0]["tot"];
//$num_totrec SHOULD BE PASSED
if(!isset($pg_limit) && empty($pg_limit))
$pg_limit = $PAGE_LIMIT; //page limit
if(!isset($rec_limit) && empty($rec_limit))
$rec_limit = $REC_LIMIT; //record limit
if($_REQUEST["TotalRecords"]!="")
$rec_limit = $_REQUEST["TotalRecords"];
$num_tmp = 0;
$var_flg = "0";
$var_limit = "";
$num_limit = 0;
$var_filter = "";
if($_GET[start]=='') {$_GET[start] = 1;$start=1;}
if(($_GET[start]-1)*$rec_limit > $num_totrec)
{
$_GET[start]=1;
$start=1;
}
if(isset($tempvar) && !empty($tempvar))
{
if($stat==1 && $tempvar == "true") $stat=0;
else if($stat==0 && $tempvar == "true") $stat=1;
else $stat=1;
}
$sort_order = ($stat==1)? $asc_order:$desc_order;
$sort_img = "<img src='$sort_order' border='0'>";
$var_filter = "";
$var_filter = "&stat=$stat";
//CODE FOR COLUMN SHOULD SORT ASCENDING/DESCENDING - END
//CHANGE THIS CODE WITH SUITABLE VARIABLES
if(isset($ptype)) $var_filter.= "&ptype=".$ptype."&action=Section";
foreach ($_GET as $key=>$val)
{
if($key != "stat" && $key != "start" && $key != "nstart" && $key != "tempvar" && $key != "sorton")
{
if(is_array($val))
{
for($k=0;$k<count($val);$k++)
{
$var_filter .= '&'.$key.'[]=' . $val[$k];
}
}else if($key == "keyword"){
$var_filter.= "&$key=". stripcslashes($val);
}
else
$var_filter.= "&$key=$val";
}
}
foreach ($_POST as $key=>$val)
{
if($key != "stat" && $key != "start" && $key != "nstart" && $key != "tempvar" && $key != "sorton")
{
if(is_array($val))
{
for($k=0;$k<count($val);$k++)
{
$var_filter .= '&'.$key.'[]=' . $val[$k];
}
}else if($key == "keyword"){
$var_filter.= "&$key=". stripcslashes($val);
}
else
$var_filter.= "&$key=$val";
}
}// end
if(isset($month_val) && $month_val != "") $var_filter.= "&month_val=$month_val";
if(isset($year_val) && $year_val != "") $var_filter.= "&year_val=$year_val";
if(isset($action) && $action != "") $var_filter.= "&action=$action";
//SET Extra querystring variables to pass from here
//$var_extra can be attached with the links for this purpose
if(isset($start)){
$num_limit = ($start-1)*$rec_limit;
$var_limit = " LIMIT $num_limit,$rec_limit";
}else $var_limit = " LIMIT 0,$rec_limit";
if(!isset($nstart)){
if($num_totrec){ //if recs exists!!
if($rec_limit>$num_totrec){
$num_pgs = 1;
$var_flg = "2";
}else{
$num_loopctr =0;
$num_loopctr = ceil($num_totrec/$rec_limit);
if($pg_limit>$num_loopctr){
$num_pgs = $num_loopctr;
$var_flg = "2";
}else{
$num_pgs = $pg_limit;
if($num_totrec<=($rec_limit*$pg_limit)) $var_flg = "2";
else $var_flg = "1";
}
}
$var_link = "";
$var_prevlink ="";
//if sorting is set
$var_sort_link="";
if(isset($sorton)) $var_sort_link = "&sorton=$sorton";
$var_prevlink ="<font size=1 color=black> |";
for($i=1;$i<=$num_pgs;$i++)
{
IF($i==1)
$var_link.= "<font size=1 color=red>$i</font> | ";
else
$var_link.= "<a href=\"$var_self$PHP_SELF?nstart=1&start=$i$var_filter$var_sort_link$var_extra\"><font size=1 color=black>$i</font></a> | ";
}
if($var_flag !="0" and $var_flg!="2"){ $var_link .= " > <a href=\"$var_self$PHP_SELF?nstart=2&start=$i$var_filter$var_filter$var_sort_link$var_extra\"><font size=1 color=black>next</font></a>"; }else {$var_link .= " </font>";
}
$page_link = "";
$page_link = "$var_prevlink $var_link";
}else{
//IF NO RECORDS EXISTS!!
$var_link="";
}
}else{ //if nstart is set
if($num_totrec){ //if recs exists!!
$num_loopctr =0;
$num_rem_rec = 0;
$num_rem_rec = ($num_totrec-(($nstart-1)*$rec_limit*$pg_limit));
$num_loopctr = ceil($num_rem_rec/$rec_limit);
$num_tmp = $rec_limit*$nstart*$pg_limit;
if($num_tmp>$num_totrec){
$num_pgs = $num_loopctr;
$var_flg = "2";
}else{
$num_pgs = $pg_limit;
if($num_totrec==($nstart*$rec_limit*$pg_limit)) $var_flg = "2";
else $var_flg = "1";
}
$var_link = "";
$var_prevlink ="";
//if sorting is set
$var_sort_link="";
if(isset($sorton)) $var_sort_link = "&sorton=$sorton";
$num_prevnstart = 0;
$num_prevstart = 0;
$num_prevnstart = $nstart-1;
$num_prevstart = ($nstart*$pg_limit)-$pg_limit;
$num_tmp = ($num_totrec/$rec_limit);
if($nstart<=1) $var_prevlink ="<font size=1 color=black> |";
else $var_prevlink ="<a href=\"$var_self$PHP_SELF?nstart=$num_prevnstart&start=$num_prevstart$var_filter$var_sort_link$var_extra\"><font size=1 color=black>prev</font></a> <font size=1 color=black>< |</font>";
for($i=1;$i<=$num_pgs;$i++)
{
$num_start = $num_prevstart+$i;
$num_nstart = $nstart+1;
IF($start==$num_start)
$var_link.= "<font size=1 color=red>$num_start</font> | ";
else
$var_link.= "<a href=\"$var_self$PHP_SELF?nstart=$nstart&start=$num_start$var_filter$var_sort_link$var_extra\"><font size=1 color=black>$num_start</font></a> | ";
}
$num_start++;
if($var_flag!="0" and $var_flg!="2"){ $var_link .= " ><a href=\"$var_self$PHP_SELF?nstart=$num_nstart&start=$num_start$var_filter$var_sort_link$var_extra\"><font size=1 color=black>next</font></a></font>"; }else {$var_link .= "<font size=1 color=black> </font>";
}
$page_link = "";
$page_link = "$var_prevlink $var_link";
}else{
//IF NO RECORDS EXISTS!!
$var_link="";
}
}
//if set the paging variables
if(isset($nstart)) $var_pgs = "&nstart=$nstart&start=$start"; //attach this with the sorting links
//CODE FOR PAGING ENDS OVER HERE
?>
在下面发布示例代码,以便您了解我在上面的描述中所说的内容。
这只是我如何使用它的示例。
$where_arr = array();
if($keyword !=""){
$where_arr[] ="$option like '".$keyword."%'";
}
if(count($where_arr)>0)
$where_clause = " WHERE ".implode(" AND ", $where_arr);
else
$where_clause = '';
$table_clause = " from admin";
$sql = "select count(iAdminId) as tot ".$table_clause.$where_clause;
$rs_sql = $sqlObj->select($sql);
$num_totrec = $rs_sql[0]['tot'];
include("gen_pagingmsg.inc.php");
if($sorton != "")
{
switch ($sorton)
{
case "1":
$sort = "vUserName";
if($stat!=1) $sort .= " DESC";
break;
case "2":
($stat==1)? $sort = "vFirstName, vLastName" : $sort = "vFirstName desc, vLastName DESC";
break;
case "3":
$sort = "vEmail";
if($stat!=1) $sort .= " DESC";
break;
case "4":
$sort = "dLastAccess";
if($stat!=1) $sort .= " DESC";
break;
case "5":
$sort = "iTotLogin";
if($stat!=1) $sort .= " DESC";
break;
case "6":
$sort = "eStatus";
if($stat!=1) $sort .= " DESC";
break;
default:
$sort ="vUserName";
}
}else {
$sort ="vUserName";
}
$sql = "select iAdminId, concat(vFirstName, ' ', vLastName) as vName, vUserName, vEmail, dLastAccess, iTotLogin, eStatus ".$table_clause.$where_clause." order by ".$sort.$var_limit;
//echo "<br>".$sql;
$db_sql = $sqlObj->select($sql);
下面是gen_pagingmsg.inc.php
<?
# =========================================================================
# Paging Paging comes from this File. Don't Remove this below line.
# =========================================================================
//echo $num_totrec;
//ECHO $rec_limit ;
if($ADMIN_SHOWPAGING_TOP=="N" && $ADMIN_SHOWPAGING_BOTTOM=="N")
$rec_limit=$num_totrec;
include("paging.inc.php");
# =========================================================================
//$keyword = stripcslashes($keyword);
if($keyword!="")
{
$var_msg="Your search for #keyword# has found #num_totrec# matches:";
$var_msg=str_replace("#keyword#","<font color=#000000>$keyword</font>",$var_msg);
$var_msg=str_replace("#num_totrec#","<font color=#000000>$num_totrec</font>",$var_msg);
}
if(!isset($start))
$start = 1;
$num_limit = ($start-1)*$rec_limit;
$startrec = $num_limit;
$lastrec = $startrec + $rec_limit;
$startrec = $startrec + 1;
if($lastrec > $num_totrec)
$lastrec = $num_totrec;
if($num_totrec > 0 )
{
$recmsg = "Showing ".$startrec." - ".$lastrec." Records Of ".$num_totrec;
}
else
{
$recmsg="Sorry !... No Records Found";
}
?>
此文件主要为您提供消息和分页 html,您可以将其保留在列表的上方或下方
我的数据库中的表很少,想对页面上的几个表实现分页。 我在每个页面中编写了自己的分页代码,只要它是 required。 是否有任何可以轻松实现的框架工作,例如,当我将查询传递给方法或 class 时,它必须使用适当的 pagination.Would 生成 ui 任何人都建议我任何框架工作做这个任务。
编辑: 我已经指定我编写了自己的分页代码,这与 @veerendra 给出的一个解决方案非常接近,但是对于 60 个不同页面的分页,我需要编写该逻辑。 我要求一个框架来减轻我编写动态分页代码的负担,它应该在 php 而不是 jquery 或 javascript 中。 由于它们的逻辑将驻留在客户端,因此无法对大型数据集进行操作。
在下面试试这个 link 以分页显示数据:
http://code.tutsplus.com/tutorials/how-to-paginate-data-with-php--net-2928
检查 datatables 它是一个很棒的 js table 框架,它允许你 实施 ajax 个调用。
您可以使用 jquery 分页,它既简单又快速。请按照我深入描述的以下步骤进行
获取包含插件和 CSS 主题的 zip here。
第 1 步: 连同 JQuery,在您的页面中包含 jquery.simplePagination.js:
<script type="text/javascript" src="path_to/jquery.js"></script>
<script type="text/javascript" src="path_to/jquery.simplePagination.js"></script>
JQuery 建议使用 1.7.2 或更高版本。旧版本也可以,但我没有测试过。
第 2 步: 可选 - 包含具有 3 个默认主题的 CSS 文件
<link type="text/css" rel="stylesheet" href="path_to/simplePagination.css"/>
如果跳过此步骤,您将需要定义自己的样式或使用 Bootstrap。
步骤 3: 在分页占位符上调用函数:
$(function() {
$(selector).pagination({
items: 100,
itemsOnPage: 10,
cssStyle: 'light-theme'
});
});
如有必要,您可以直接通过"pages"参数指定页数,而不是"items"和"itemsOnPage",插件使用它们来自动计算页数页数。
可用选项
items 整数默认值:1 将用于计算页面的项目总数。
itemsOnPage 整数默认值:1 每页显示的项目数。
pages Integer Optional 如果指定,items 和 itemsOnPage 将不会用于计算页数。
displayedPages 整数默认值:5 导航时应显示多少页码。
允许的最小值:3(上一个、当前和下一个) edges Integer 默认值:2 在分页的 beginning/ending 处可见多少页码。
currentPage 整数默认值:1 初始化后select立即编辑哪个页面。
hrefTextPrefix String Default: "#page-" 用于构建 href 属性的字符串,添加在页码之前。
hrefTextSuffix String Default: empty string 用于构建 href 属性的另一个字符串,添加在页码之后。
prevText 字符串默认值:"Prev" 要在上一个按钮上显示的文本。
nextText 字符串默认值:"Next" 要在下一个按钮上显示的文本。
labelMap 数组默认值:空数组将用于呈现分页项目的标签集合,替换数字。 cssStyle String 默认值:"light-theme" CSS 主题的 class。
selectOnClick 布尔值默认值:true 如果您不想 select 单击后立即打开页面,则设置为 false。
onPageClick(pageNumber, event) Function Optional 页面被点击时调用的函数。
页码和事件是可选参数。 onInit Function Optional 分页初始化时调用的函数。
可用方法
select页面 - Select 基于页码的页面。
$(function() {
$(selector).pagination('selectPage', pageNumber);
});
上一页 - Select上一页。
$(function() {
$(selector).pagination('prevPage');
});
下一页 - Select下一页。
$(function() {
$(selector).pagination('nextPage');
});
getPagesCount - Returns 总页数。
$(function() {
$(selector).pagination('getPagesCount');
});
getCurrentPage - Returns 当前页码。
$(function() {
$(selector).pagination('getCurrentPage');
});
disable - 禁用分页功能。
$(function() {
$(selector).pagination('disable');
});
启用 - 在之前禁用后启用分页。
$(function() {
$(selector).pagination('enable');
});
destroy - 视觉上破坏分页,保留所有现有设置。
$(function() {
$(selector).pagination('destroy');
});
redraw - 使用现有设置再次绘制分页。 (例如,在你销毁分页后很有用)
$(function() {
$(selector).pagination('redraw');
});
updateItems - 允许动态更改分页呈现的项目数
$(function() {
$(selector).pagination('updateItems', 100);
});
updateItemsOnPage - 允许动态更改每个页面上呈现的项目数
$(function() {
$(selector).pagination('updateItemsOnPage', 20);
});
drawPage - 将页码作为参数并将 "currentPage" 值设置为给定的页码并绘制分页
$(function() {
$(selector).pagination('drawPage', 5);
});
下面是名为 paging.inc.php
的文件你只需要将 where class 传递给查询,只需要获取计数并将计数变量命名为与文件中相同的名称,然后你将需要设置每页记录和其他参数.
在此之后,您需要触发查询,该查询将从文件中获取带有 limit 变量的记录,这可用于对列表中的列进行排序。
<?
//CODE FOR PAGING
if(!isset($num_totrec)) $num_totrec = $db_recs[0]["tot"];
//$num_totrec SHOULD BE PASSED
if(!isset($pg_limit) && empty($pg_limit))
$pg_limit = $PAGE_LIMIT; //page limit
if(!isset($rec_limit) && empty($rec_limit))
$rec_limit = $REC_LIMIT; //record limit
if($_REQUEST["TotalRecords"]!="")
$rec_limit = $_REQUEST["TotalRecords"];
$num_tmp = 0;
$var_flg = "0";
$var_limit = "";
$num_limit = 0;
$var_filter = "";
if($_GET[start]=='') {$_GET[start] = 1;$start=1;}
if(($_GET[start]-1)*$rec_limit > $num_totrec)
{
$_GET[start]=1;
$start=1;
}
if(isset($tempvar) && !empty($tempvar))
{
if($stat==1 && $tempvar == "true") $stat=0;
else if($stat==0 && $tempvar == "true") $stat=1;
else $stat=1;
}
$sort_order = ($stat==1)? $asc_order:$desc_order;
$sort_img = "<img src='$sort_order' border='0'>";
$var_filter = "";
$var_filter = "&stat=$stat";
//CODE FOR COLUMN SHOULD SORT ASCENDING/DESCENDING - END
//CHANGE THIS CODE WITH SUITABLE VARIABLES
if(isset($ptype)) $var_filter.= "&ptype=".$ptype."&action=Section";
foreach ($_GET as $key=>$val)
{
if($key != "stat" && $key != "start" && $key != "nstart" && $key != "tempvar" && $key != "sorton")
{
if(is_array($val))
{
for($k=0;$k<count($val);$k++)
{
$var_filter .= '&'.$key.'[]=' . $val[$k];
}
}else if($key == "keyword"){
$var_filter.= "&$key=". stripcslashes($val);
}
else
$var_filter.= "&$key=$val";
}
}
foreach ($_POST as $key=>$val)
{
if($key != "stat" && $key != "start" && $key != "nstart" && $key != "tempvar" && $key != "sorton")
{
if(is_array($val))
{
for($k=0;$k<count($val);$k++)
{
$var_filter .= '&'.$key.'[]=' . $val[$k];
}
}else if($key == "keyword"){
$var_filter.= "&$key=". stripcslashes($val);
}
else
$var_filter.= "&$key=$val";
}
}// end
if(isset($month_val) && $month_val != "") $var_filter.= "&month_val=$month_val";
if(isset($year_val) && $year_val != "") $var_filter.= "&year_val=$year_val";
if(isset($action) && $action != "") $var_filter.= "&action=$action";
//SET Extra querystring variables to pass from here
//$var_extra can be attached with the links for this purpose
if(isset($start)){
$num_limit = ($start-1)*$rec_limit;
$var_limit = " LIMIT $num_limit,$rec_limit";
}else $var_limit = " LIMIT 0,$rec_limit";
if(!isset($nstart)){
if($num_totrec){ //if recs exists!!
if($rec_limit>$num_totrec){
$num_pgs = 1;
$var_flg = "2";
}else{
$num_loopctr =0;
$num_loopctr = ceil($num_totrec/$rec_limit);
if($pg_limit>$num_loopctr){
$num_pgs = $num_loopctr;
$var_flg = "2";
}else{
$num_pgs = $pg_limit;
if($num_totrec<=($rec_limit*$pg_limit)) $var_flg = "2";
else $var_flg = "1";
}
}
$var_link = "";
$var_prevlink ="";
//if sorting is set
$var_sort_link="";
if(isset($sorton)) $var_sort_link = "&sorton=$sorton";
$var_prevlink ="<font size=1 color=black> |";
for($i=1;$i<=$num_pgs;$i++)
{
IF($i==1)
$var_link.= "<font size=1 color=red>$i</font> | ";
else
$var_link.= "<a href=\"$var_self$PHP_SELF?nstart=1&start=$i$var_filter$var_sort_link$var_extra\"><font size=1 color=black>$i</font></a> | ";
}
if($var_flag !="0" and $var_flg!="2"){ $var_link .= " > <a href=\"$var_self$PHP_SELF?nstart=2&start=$i$var_filter$var_filter$var_sort_link$var_extra\"><font size=1 color=black>next</font></a>"; }else {$var_link .= " </font>";
}
$page_link = "";
$page_link = "$var_prevlink $var_link";
}else{
//IF NO RECORDS EXISTS!!
$var_link="";
}
}else{ //if nstart is set
if($num_totrec){ //if recs exists!!
$num_loopctr =0;
$num_rem_rec = 0;
$num_rem_rec = ($num_totrec-(($nstart-1)*$rec_limit*$pg_limit));
$num_loopctr = ceil($num_rem_rec/$rec_limit);
$num_tmp = $rec_limit*$nstart*$pg_limit;
if($num_tmp>$num_totrec){
$num_pgs = $num_loopctr;
$var_flg = "2";
}else{
$num_pgs = $pg_limit;
if($num_totrec==($nstart*$rec_limit*$pg_limit)) $var_flg = "2";
else $var_flg = "1";
}
$var_link = "";
$var_prevlink ="";
//if sorting is set
$var_sort_link="";
if(isset($sorton)) $var_sort_link = "&sorton=$sorton";
$num_prevnstart = 0;
$num_prevstart = 0;
$num_prevnstart = $nstart-1;
$num_prevstart = ($nstart*$pg_limit)-$pg_limit;
$num_tmp = ($num_totrec/$rec_limit);
if($nstart<=1) $var_prevlink ="<font size=1 color=black> |";
else $var_prevlink ="<a href=\"$var_self$PHP_SELF?nstart=$num_prevnstart&start=$num_prevstart$var_filter$var_sort_link$var_extra\"><font size=1 color=black>prev</font></a> <font size=1 color=black>< |</font>";
for($i=1;$i<=$num_pgs;$i++)
{
$num_start = $num_prevstart+$i;
$num_nstart = $nstart+1;
IF($start==$num_start)
$var_link.= "<font size=1 color=red>$num_start</font> | ";
else
$var_link.= "<a href=\"$var_self$PHP_SELF?nstart=$nstart&start=$num_start$var_filter$var_sort_link$var_extra\"><font size=1 color=black>$num_start</font></a> | ";
}
$num_start++;
if($var_flag!="0" and $var_flg!="2"){ $var_link .= " ><a href=\"$var_self$PHP_SELF?nstart=$num_nstart&start=$num_start$var_filter$var_sort_link$var_extra\"><font size=1 color=black>next</font></a></font>"; }else {$var_link .= "<font size=1 color=black> </font>";
}
$page_link = "";
$page_link = "$var_prevlink $var_link";
}else{
//IF NO RECORDS EXISTS!!
$var_link="";
}
}
//if set the paging variables
if(isset($nstart)) $var_pgs = "&nstart=$nstart&start=$start"; //attach this with the sorting links
//CODE FOR PAGING ENDS OVER HERE
?>
在下面发布示例代码,以便您了解我在上面的描述中所说的内容。
这只是我如何使用它的示例。
$where_arr = array();
if($keyword !=""){
$where_arr[] ="$option like '".$keyword."%'";
}
if(count($where_arr)>0)
$where_clause = " WHERE ".implode(" AND ", $where_arr);
else
$where_clause = '';
$table_clause = " from admin";
$sql = "select count(iAdminId) as tot ".$table_clause.$where_clause;
$rs_sql = $sqlObj->select($sql);
$num_totrec = $rs_sql[0]['tot'];
include("gen_pagingmsg.inc.php");
if($sorton != "")
{
switch ($sorton)
{
case "1":
$sort = "vUserName";
if($stat!=1) $sort .= " DESC";
break;
case "2":
($stat==1)? $sort = "vFirstName, vLastName" : $sort = "vFirstName desc, vLastName DESC";
break;
case "3":
$sort = "vEmail";
if($stat!=1) $sort .= " DESC";
break;
case "4":
$sort = "dLastAccess";
if($stat!=1) $sort .= " DESC";
break;
case "5":
$sort = "iTotLogin";
if($stat!=1) $sort .= " DESC";
break;
case "6":
$sort = "eStatus";
if($stat!=1) $sort .= " DESC";
break;
default:
$sort ="vUserName";
}
}else {
$sort ="vUserName";
}
$sql = "select iAdminId, concat(vFirstName, ' ', vLastName) as vName, vUserName, vEmail, dLastAccess, iTotLogin, eStatus ".$table_clause.$where_clause." order by ".$sort.$var_limit;
//echo "<br>".$sql;
$db_sql = $sqlObj->select($sql);
下面是gen_pagingmsg.inc.php
<?
# =========================================================================
# Paging Paging comes from this File. Don't Remove this below line.
# =========================================================================
//echo $num_totrec;
//ECHO $rec_limit ;
if($ADMIN_SHOWPAGING_TOP=="N" && $ADMIN_SHOWPAGING_BOTTOM=="N")
$rec_limit=$num_totrec;
include("paging.inc.php");
# =========================================================================
//$keyword = stripcslashes($keyword);
if($keyword!="")
{
$var_msg="Your search for #keyword# has found #num_totrec# matches:";
$var_msg=str_replace("#keyword#","<font color=#000000>$keyword</font>",$var_msg);
$var_msg=str_replace("#num_totrec#","<font color=#000000>$num_totrec</font>",$var_msg);
}
if(!isset($start))
$start = 1;
$num_limit = ($start-1)*$rec_limit;
$startrec = $num_limit;
$lastrec = $startrec + $rec_limit;
$startrec = $startrec + 1;
if($lastrec > $num_totrec)
$lastrec = $num_totrec;
if($num_totrec > 0 )
{
$recmsg = "Showing ".$startrec." - ".$lastrec." Records Of ".$num_totrec;
}
else
{
$recmsg="Sorry !... No Records Found";
}
?>
此文件主要为您提供消息和分页 html,您可以将其保留在列表的上方或下方