$sql=mysql_query("select * from lug_user where $_POST[select]=\"$_POST[user_query]\""); $user_sum=mysql_num_rows($sql); if(empty($_GET[offset])) { $_GET[offset]=0; } $pg_sum=ceil($user_sum/1); //总页数; 这种计算页数的方法是不正确的、很危险的,假如单表数据很的时候,效率很慢,甚至有可能会对系统造成严重损害,正确方式SQL因该这样select count(*) as total from lug_user where 。 以这样的方式计算总数才是安全的做法
//判断CGI方式 if (isset($_POST["select"])) { $select = $_POST["select"]; } else if (isset($_GET["select"])) { $select = $_GET["select"]; } if (isset($_POST["user_query"])) { $user_query = $_POST["user_query"]; } else if (isset($_GET["user_query"])) { $user_query = $_GET["user_query"]; } if (isset($_GET[offset])) { if ( intval($_GET[offset]) ==0) { $offset = 1; } else { $offset = $_GET[offset]; } } if ( $offset == 1 ) { //无上一页 } else { $preview = $offset - 1; } if ( $offset >= $page_num) { //无下一页 } else { $nextview = $offset +1; } //计算分页 $perpage = 20; //每页20条 $query = "select count(*) as total from table where ....."; $result = mysql_query( $query); ..... $row = mysql_fetch_array( $result); $total = $row["total"]; $page_num = ceil( intval($total)/$perpage); if ( $offset <= $page_num) { $thepos = $offset * $perpage; $query = "select * from table where ..... limit $thepos,$perpage"; ...................... } /**************************************************************************************************** *link:<a href=$_SERVER["PHP_SELF"]?select=$select&user_query=$user_query&offset=$preview>上一页</a> * *<a href=$_SERVER["PHP_SELF"]?select=$select&user_query=$user_query&offset=$nextview>上一页</a> * ****************************************************************************************************/
$_POST[select]和$_POST[user_query]
<?php
$link_url=$PHP_SELF."?".select=$_POST[select]&user_query=$_POST[user_query]
?>然后把所有的 href="<? $PHP_SELF ?> ?offset=0"> 替换为$link_url."&offset=" <form name="form2" method="post" action="<? $PHP_SELF ?>">
<tr align="center" bgcolor="#00CCFF">
<td colspan="6"> <a href="<? echo $link_url?> ?offset=0">首页 </a> <a href="<? echo $link_url ?> ?offset=<? echo $endoffset ?>">尾页
</a>
-------------当然不是,这只是我测试用的(懒得家那么多用户了)2。bluemeteor(挂月||╭∩╮(︶_︶)╭∩╮) 我按你说的作了,,但是不行啊,郁闷阿
分页传递的CGI value是GET方式
$user_sum=mysql_num_rows($sql);
if(empty($_GET[offset]))
{
$_GET[offset]=0;
}
$pg_sum=ceil($user_sum/1); //总页数;
这种计算页数的方法是不正确的、很危险的,假如单表数据很的时候,效率很慢,甚至有可能会对系统造成严重损害,正确方式SQL因该这样select count(*) as total from lug_user where 。
以这样的方式计算总数才是安全的做法
if (isset($_POST["select"]))
{
$select = $_POST["select"];
}
else if (isset($_GET["select"]))
{
$select = $_GET["select"];
}
if (isset($_POST["user_query"]))
{
$user_query = $_POST["user_query"];
}
else if (isset($_GET["user_query"]))
{
$user_query = $_GET["user_query"];
}
if (isset($_GET[offset]))
{
if ( intval($_GET[offset]) ==0)
{
$offset = 1;
}
else
{
$offset = $_GET[offset];
}
}
if ( $offset == 1 )
{
//无上一页
}
else
{
$preview = $offset - 1;
}
if ( $offset >= $page_num)
{
//无下一页
}
else
{
$nextview = $offset +1;
}
//计算分页
$perpage = 20; //每页20条
$query = "select count(*) as total from table where .....";
$result = mysql_query( $query);
.....
$row = mysql_fetch_array( $result);
$total = $row["total"];
$page_num = ceil( intval($total)/$perpage);
if ( $offset <= $page_num)
{
$thepos = $offset * $perpage;
$query = "select * from table where ..... limit $thepos,$perpage";
......................
}
/****************************************************************************************************
*link:<a href=$_SERVER["PHP_SELF"]?select=$select&user_query=$user_query&offset=$preview>上一页</a> *
*<a href=$_SERVER["PHP_SELF"]?select=$select&user_query=$user_query&offset=$nextview>上一页</a> *
****************************************************************************************************/