根据一个关键字查询。先如果没有设置搜索字符,我就列表全部,并且分页显示,这个没有问题。问题在于如果设置了搜索字符,能查找出结果,但是点击页码的时候丢失了搜索字符,重新列表了全部,请问该怎么解决。代码如下:
<?php

     require("config.inc.php");
     require("top.php");   $linkid= @ mysql_pconnect($DBHost,$DBUser,$DBUserPassWord);     $choose = mysql_select_db($DBName,$linkid);
     

//echo "begin";



GLOBAL $pagesize;//每页显示几条
   
  $pagesize=5;
 
 
 @$str=$_POST["CTYPE"];//关键字的获取
 
  if($str){
//echo "有";

$search=$str;

$result = mysql_query("select * from $DBTable where $DBMainTab_Fed_FullName like '%$search%' or $DBMainTab_Fed_AdName like '%$search%' or $DBMainTab_Fed_Notes like '%$search%' order by $DBMainTab_Fed_FullName ",$linkid);

$num=mysql_num_rows($result);//总条目数。

$pagenumber=ceil($num/$pagesize);

if(!isset($_GET['page'])){


echo "没有设置new";

$result = mysql_query("select * from $DBTable where $DBMainTab_Fed_FullName like '%$search%' or $DBMainTab_Fed_AdName like '%$search%' or $DBMainTab_Fed_Notes like '%$search%' order by $DBMainTab_Fed_FullName limit 0,$pagesize ",$linkid);
}

else{
if(($_GET['page'])==1){

echo "设置1";


echo "<script language='javascript'>document.search.CTYPE.value='$search'</script>";
$result = mysql_query("select * from $DBTable where $DBMainTab_Fed_FullName like '%$search%' or $DBMainTab_Fed_AdName like '%$search%' or $DBMainTab_Fed_Notes like '%$search%' order by $DBMainTab_Fed_FullName limit 0,$pagesize ",$linkid);
}else{

echo "设置2";
$z=@$_GET['page'];
$d=($z-1)*$pagesize;
$result = mysql_query("select * from $DBTable where $DBMainTab_Fed_FullName like '%$search%' or $DBMainTab_Fed_AdName like '%$search%' or $DBMainTab_Fed_Notes like '%$search%' order by $DBMainTab_Fed_FullName limit $d,$pagesize ",$linkid);
}
}

require("all.php");

$url='index.php';
for ($i=1;$i<=$pagenumber;$i++)
{
echo "<a href='$url'?page=$i>$i</a> ";

}

}


else{//没有搜索字符时的显示。


解决方案 »

  1.   

    使用session,或者定义一个全局变量,还可以用Ajax。看你哪个合适吧。
      

  2.   

    分页应当直接考虑用ajax了。ajax的好处就是能保持页面状态,这意味着什么呢?意味着不用处理如何保持你的查询条件,从而采用的诸多seesion之类的小技巧,导致网页参杂不必要的页面处理逻辑。
    这是质的飞跃。
      

  3.   

    你点击下一页的时候,你的搜索值为空了,你应该把你的搜索值传给下一页,
    <a href='$url'?page=$i&search=$str>
      

  4.   

    赞同,同时
    @$str=$_POST["CTYPE"];//关键字的获取 
    要用
    @$str=$_GET["CTYPE"];//关键字的获取 
      

  5.   


    <a href='$url'?page=$i&search=$str>应该是
    <a href='$url'?page=$i&CTYPE=$str>