我的分页是实现了....但是第一次的时候是正常的....如果一查询了以后点击下一页时它又返回的是第一次分页的数量....
<? 
function pageft($total,$displaypg=20,$url=''){ 
//$_SERVER:读取本页URL“$_SERVER["REQUEST_URI"]”所必须。 
global $page,$firstcount,$pagenav,$_SERVER; 
$GLOBALS["displaypg"]=$displaypg; 
if(!$page) $page=1; 
//如果$url使用默认,即空值,则赋值为本页URL: 
if(!$url){$url=_HTTP_ROOT.$_SERVER['DOCUMENT_ROOT'];
 file_put_contents($_SERVER['DOCUMENT_ROOT'],file_get_contents($url)); 

//URL分析:
 
$parse_url=parse_url($url); 
$url_query=$parse_url["query"]; //单独取出URL的查询字串
print_r($parse_url);
if($url_query){ 
$url_query=ereg_replace("(^|&)page=$page","",$url_query); //将处理后的URL的查询字串替换原来的URL的查询字串: 
$url=str_replace($parse_url["query"],$url_query,$url); //在URL后加page查询信息,但待赋值: 
if($url_query) $url.="&page"; else $url.="page"; 
}else { 
$url.="?page"; 
} //页码计算: 
$lastpg=ceil($total/$displaypg); //最后页,也是总页数 
$page=min($lastpg,$page); 
$prepg=$page-1; //上一页 
$nextpg=($page==$lastpg ? 0 : $page+1); //下一页 
$firstcount=($page-1)*$displaypg; //开始分页导航条代码: 
$pagenav="显示第 <B>".($total?($firstcount+1):0)." </B>- <B>".min($firstcount+$displaypg,$total)." </B> 条记录,共 $total 条记录"; //如果只有一页则跳出函数: 
if($lastpg <=1) return false; $pagenav.=" <a href='$url=1'>首页 </a> "; 
if($prepg) $pagenav.=" <a href='$url=$prepg'>前页 </a> "; else $pagenav.=" 前页 "; 
if($nextpg) $pagenav.=" <a href='$url=$nextpg'>后页 </a> "; else $pagenav.=" 后页 "; 
$pagenav.=" <a href='$url=$lastpg'>尾页 </a> "; //下拉跳转列表,循环列出所有页码: 
$pagenav.=" 到第 <select name='topage' size='1' onchange='window.location=\"$url=\"+this.value'>\n"; 
for($i=1;$i <=$lastpg;$i++){ 
if($i==$page) $pagenav.=" <option value='$i' selected>$i </option>\n"; 
else $pagenav.=" <option value='$i'>$i </option>\n"; 

$pagenav.=" </select> 页,共 $lastpg 页"; 


?> <form action="<? echo $PHP_SELF;?>" method="post"><input type="text" id="cond" name="cond" value="">
<input type="submit" id="submit" name="submit" value="Search">
</form><?php 
echo (" <table width='618' border='0'> 
  <tr bgcolor='#999999'> 
    <td width='32'>&nbsp; </td> 
    <td width='110'>帐号 </td> 
    <td width='155'>密码 </td> 
    <td width='193'> </td> 
    <Td> </Td> 
  </tr>"); $page = intval($_GET[page]); //取得总信息数
$conn=mysql_connect("localhost","root","123456");
mysql_select_db("brilliant_account_voucher", $conn);
$cond=$_POST['cond'];
if($_POST['submit']=="Search"){
$query = mysql_query("SELECT * FROM acc_cheque where applyname like '%{$cond}%' order by id"); 
}else{
$query=mysql_query("Select * from acc_cheque order by id");
}
$total = mysql_num_rows($query); //调用pageft(),每页显示10条信息(使用默认的20时,可以省略此参数),使用本页URL(默认,所以省略掉)。 pageft($total,10,"admin.php"); 
//现在产生的全局变量就派上用场了:
if($_POST['submit']=="Search"){
$sql = "select * from acc_cheque where applyname like '%{$cond}%' order by id limit $firstcount,$displaypg"; 
}else{
$sql="select * from acc_cheque order by id limit $firstcount,$displaypg";
}$result2=mysql_query($sql); 
while($row=mysql_fetch_array($result2)) 

//列表内容 
echo (" <tr bgcolor='#CCCCCC'>"); 
echo (" <td>&nbsp; </td>"); 
echo " <td>",$row['applydate']," </td>";//因为含有变量,括号就不用了 
echo " <td>",$row['applyname']," </td>"; 
echo " <td>",$row['chequeserial']," </td>"; 
echo " <Td> <a href='admin.php?id=",$row['id'],"'>修改 </a>&nbsp; <a href='admin_del.php?id=",$row['id'],"'>删 </a> </Td>"; 
echo (" </tr>"); 

echo " </table>";
//输出分页导航条代码: 
echo $pagenav;
?>

解决方案 »

  1.   

    如何传递查询变量啊?我也想把查询的变量一起传递给url
      

  2.   

    很简单的,你在:下一页,这个链接上面加上查询相关的名称就行了。例:
    $temp_url = ($in_depotid) ? "&amp;in_depotid=$in_depotid" : '';
    $temp_url .= ($in_finger) ? '&amp;in_finger=' . urlencode($in_finger) : '';
    $temp_url .= ($in_time) ? "&amp;in_time=$in_time" : '';
    $next_url = 'index.php?query=yes'.$temp_url  //下一页的连接就用这个
    只是一个例子,你的程序中具体自己去写。