共享最简单的分页函数
时间:2006-12-24 来源:gewanhong
/*
函数名称:Make_Page
函数功能:对数据进行分页显示,该函数可完全自动加上分页时所带的参数,该函数应在最后查询前调用,如下:
函数参数:&$QuerySql :分页数据的SQL语句,如"select * from users" ,传的是地址方式
$sql_link :MYSQL连接句柄
$array :可选的每页显示数,一维数组如"array(5,10,20)"
返 回 值:分面显示的链接字符串,将其输出到网页即可,
在调用该函数後,$QuerySql的内容将会改变为以下形式:
如"select * from users limit 0,10"
*/
function Make_Page(&$QuerySql,$sql_link,$array=array(10,20))
{
//---------------设置分页的GET变量---------------------
//--这两处参数是程序自动加上的,顺序为"$Page_Rows=90&ActionPage=12"
$Aget='ActionPage'; //当前页参数
$Pget='Page_Rows'; //每页显示数
$PR_str="&{$Pget}=";
$AP_str="&{$Aget}=";
//---------------得到记录总数-------------------------
$res=@mysql_query($QuerySql,$sql_link);
$RecordNum=@mysql_num_rows($res);
@mysql_free_result($res);
//---------------得到每页显示数和当前显示的页数---------
$page = $_GET[$Aget]=='' ? 1 : $_GET[$Aget];
$page_rows = $_GET[$Pget]=='' ? $array[0] : $_GET[$Pget];
//---------------得到设置後的总页数-----------------------
if($RecordNum > 0 )
{
if($RecordNum '.$RecordNum.'项';
$page_string.=',共 '.$page_count.'页,每页显示 ';
//_____________生成可选的每页数连接-------------------------
if( is_array($array) )
{
foreach($array as $val)
{
$value = $getval.$PR_str.$val; //改变每页显示数是不加分页数
if($getval == '?') $value=str_replace('?&','?',$value);
if( $val == $page_rows )
$page_string .= '['.$val.'] ';
// $page_string .= ''.$val.' ';
else $page_string .= ''.$val.' ';
}
$page_string .= '项 ';
}
//-------------生成翻页链接-------------------------------
$value=$getval.$PR_str.$page_rows.$AP_str;
if($getval == '?') $value=str_replace('?&','?',$value);
/* 图片的HTML代码
9 //首页
7 //上一页
8 //下一页
: //尾页
*/
if( $page == 1 )
$page_string .= '9 7 ';
else {
$page_string .= '9 ';
$page_string .= '7 ';
}
if( ($page == $page_count) || ($page_count == 0) ) //--显示最后一页
{
$page_string .= '8 : ';
}else{
$page_string .= '8 ';
$page_string .= ': ';
}
//-----------生成可选分页数---------------------------------
$page_string.="转到 \n\r";
for($i=1; $i'."第{$i}页\n";
else $page_string.=''."第{$i}页\n";
}
$page_string .= '';
return $page_string;
}
// 调试分页函数的代码
$_HOST_NAME_ = "localhost"; //主机名
$_USER_NAME_ = "root"; //用户名
$_USER_PASS_ = "root"; //密码
$_DB_NAME_ = "elearning"; //数据库名
$sql_link=mysql_connect($_HOST_NAME_, $_USER_NAME_, $_USER_PASS_);
mysql_select_db($_DB_NAME_,$sql_link);
$query='select * from test_table where 1'; //products表中数据最好多一点,效果更明显
$pagestr=Make_Page($query,$sql_link);
mysql_query($query,$sql_link);
//-----其它处理------
//------------------
echo $pagestr;
函数名称:Make_Page
函数功能:对数据进行分页显示,该函数可完全自动加上分页时所带的参数,该函数应在最后查询前调用,如下:
函数参数:&$QuerySql :分页数据的SQL语句,如"select * from users" ,传的是地址方式
$sql_link :MYSQL连接句柄
$array :可选的每页显示数,一维数组如"array(5,10,20)"
返 回 值:分面显示的链接字符串,将其输出到网页即可,
在调用该函数後,$QuerySql的内容将会改变为以下形式:
如"select * from users limit 0,10"
*/
function Make_Page(&$QuerySql,$sql_link,$array=array(10,20))
{
//---------------设置分页的GET变量---------------------
//--这两处参数是程序自动加上的,顺序为"$Page_Rows=90&ActionPage=12"
$Aget='ActionPage'; //当前页参数
$Pget='Page_Rows'; //每页显示数
$PR_str="&{$Pget}=";
$AP_str="&{$Aget}=";
//---------------得到记录总数-------------------------
$res=@mysql_query($QuerySql,$sql_link);
$RecordNum=@mysql_num_rows($res);
@mysql_free_result($res);
//---------------得到每页显示数和当前显示的页数---------
$page = $_GET[$Aget]=='' ? 1 : $_GET[$Aget];
$page_rows = $_GET[$Pget]=='' ? $array[0] : $_GET[$Pget];
//---------------得到设置後的总页数-----------------------
if($RecordNum > 0 )
{
if($RecordNum '.$RecordNum.'项';
$page_string.=',共 '.$page_count.'页,每页显示 ';
//_____________生成可选的每页数连接-------------------------
if( is_array($array) )
{
foreach($array as $val)
{
$value = $getval.$PR_str.$val; //改变每页显示数是不加分页数
if($getval == '?') $value=str_replace('?&','?',$value);
if( $val == $page_rows )
$page_string .= '['.$val.'] ';
// $page_string .= ''.$val.' ';
else $page_string .= ''.$val.' ';
}
$page_string .= '项 ';
}
//-------------生成翻页链接-------------------------------
$value=$getval.$PR_str.$page_rows.$AP_str;
if($getval == '?') $value=str_replace('?&','?',$value);
/* 图片的HTML代码
9 //首页
7 //上一页
8 //下一页
: //尾页
*/
if( $page == 1 )
$page_string .= '9 7 ';
else {
$page_string .= '9 ';
$page_string .= '7 ';
}
if( ($page == $page_count) || ($page_count == 0) ) //--显示最后一页
{
$page_string .= '8 : ';
}else{
$page_string .= '8 ';
$page_string .= ': ';
}
//-----------生成可选分页数---------------------------------
$page_string.="转到 \n\r";
for($i=1; $i'."第{$i}页\n";
else $page_string.=''."第{$i}页\n";
}
$page_string .= '';
return $page_string;
}
// 调试分页函数的代码
$_HOST_NAME_ = "localhost"; //主机名
$_USER_NAME_ = "root"; //用户名
$_USER_PASS_ = "root"; //密码
$_DB_NAME_ = "elearning"; //数据库名
$sql_link=mysql_connect($_HOST_NAME_, $_USER_NAME_, $_USER_PASS_);
mysql_select_db($_DB_NAME_,$sql_link);
$query='select * from test_table where 1'; //products表中数据最好多一点,效果更明显
$pagestr=Make_Page($query,$sql_link);
mysql_query($query,$sql_link);
//-----其它处理------
//------------------
echo $pagestr;
相关阅读 更多 +
排行榜 更多 +