2011-09-23 178 views
0

当我进入下一页(从index.php到index.php?page = 2)时,脚本忘记搜索关键字“for example country=US”,并在下一页显示默认选项(country=)。然后我也尝试添加(WHERE country =),但这种方式我觉得这行不行“‘.mysql_real_escape_string($_GET['country'])。’”:脚本忘记搜索关键字

foreach($_POST as $key => $value) 
{ 
    $clean[$key] = mysql_real_escape_string(trim($value)); 
} 
$name=$clean['name']; 
$country=$clean['country']; 
$ip=$clean['ip']; 
$map=$clean['map']; 
$o="AND"; 

对不起,在脚本中的混乱,因为我有从我在网上找到的部分收集它等等,所以我仍然没有足够的技能来找出什么是错的。感谢您的任何建议。

<? 
include("conf.php"); 

foreach($_POST as $key => $value) 
{ 
    $clean[$key] = mysql_real_escape_string(trim($value)); 
} 
$name=$clean['name']; 
$country=$clean['country']; 
$ip=$clean['ip']; 
$map=$clean['map']; 
$o="AND"; 
       $rest=""; 
       $text="Keywords : "; 


        if($name!="") 
        { 
         if($rest=="") 
          { 
         $rest.=" where name like '%$name%'"; 
         $text.="Name like $name "; 
         } 
         else { 
          $rest.="$o where fname like '%$name%' or mname like '%$name%' or lname like '%$name%' "; 
          $text.="Name like $name "; 
         } 
        } 
        if($country!="") 
        { 
         if($rest=="") 
          { 
           $rest.="where country='$country' "; 
           $text.="Country = $country"; 
          } 
          else 
          { 
          $rest.=" $o country='$country' "; 
          $text.=", Country = $country"; 
          } 
        } 

         if($ip!="") 
        { 
         if($rest=="") 
          { 
           $rest.="where ip = '$ip' "; 
           $text.="Ip Address = $ip "; 
          } 
          else 
          { 
          $rest.=" $o ip = '$ip' "; 
          $text.=", Ip Address = $ip "; 
          } 
        } 
        if($port!="") 
        { 
         if($rest=="") 
          { 
           $rest.="where port = '$port' "; 
           $text.="Port = $port "; 
          } 
          else 
          { 
          $rest.=" $o port = '$port' "; 
          $text.=", Port = $port "; 
          } 
        } 

        if($map!="") 
        { 
         if($rest=="") 
          { 
           $rest.="where map = '$map' "; 
           $text.="Map = $map"; 
          } 
          else 
          { 
          $rest.=" $o map = '$map' "; 
          $text.=", Map = $map"; 
          } 
        } 
        if($rest!="") 
        { 
        $rest=$rest; 
        } 
        else 
        { 
         //die("Enter Search Parameter<br><br><br><br><br><br><br><br><br><br><br>"); 
        } 
    $sql="select $search.* from $search $rest order by id"; 
    $result=mysql_query($sql,$connection) or die(mysql_error());    
    $num=mysql_num_rows($result); 
    $adjacents = 3; 
    $limit = 10; 
    $query = "SELECT COUNT(*) as num FROM $search"; 
    $total_pages = mysql_fetch_array(mysql_query($query)); 
    $total_pages = $num; 
    /* Setup vars for query. */ 
    $targetpage = "index.php"; //your file name (the name of this file) 
           //how many items to show per page 
    $page = $_GET['page']; 
    if($page) 
     $start = ($page - 1) * $limit;   //first item to display on this page 
    else 
     $start = 0;        //if no page var is given, set start to 0 

    /* Get data. */ 
    $sql = "select $search.* from $search $rest order by id LIMIT $start, $limit"; 
    $result = mysql_query($sql); 

    /* Setup page vars for display. */ 
    if ($page == 0) $page = 1;     //if no page var is given, default to 1. 
    $prev = $page - 1;       //previous page is page - 1 
    $next = $page + 1;       //next page is page + 1 
    $lastpage = ceil($total_pages/$limit);  //lastpage is = total pages/items per page, rounded up. 
    $lpm1 = $lastpage - 1; 

    /* 
     Now we apply our rules and draw the pagination object. 
     We're actually saving the code to a variable in case we want to draw it more than once. 
    */ 
    $pagination = ""; 
    if($lastpage > 1) 
    { 
     $pagination .= "<div class=\"pagination\">"; 
     //previous button 
     if ($page > 1) 
      $pagination.= "<a href=\"$targetpage?page=$prev\">« previous</a>"; 
     else 
      $pagination.= "<span class=\"disabled\">« previous</span>"; 

     //pages 
     if ($lastpage < 7 + ($adjacents * 2)) //not enough pages to bother breaking it up 
     { 
      for ($counter = 1; $counter <= $lastpage; $counter++) 
      { 
       if ($counter == $page) 
        $pagination.= "<span class=\"current\">$counter</span>"; 
       else 
        $pagination.= "<a href=\"$targetpage?page=$counter\">$counter</a>";     
      } 
     } 
     elseif($lastpage > 5 + ($adjacents * 2)) //enough pages to hide some 
     { 
      //close to beginning; only hide later pages 
      if($page < 1 + ($adjacents * 2))   
      { 
       for ($counter = 1; $counter < 4 + ($adjacents * 2); $counter++) 
       { 
        if ($counter == $page) 
         $pagination.= "<span class=\"current\">$counter</span>"; 
        else 
         $pagination.= "<a href=\"$targetpage?page=$counter\">$counter</a>";     
       } 
       $pagination.= "..."; 
       $pagination.= "<a href=\"$targetpage?page=$lpm1\">$lpm1</a>"; 
       $pagination.= "<a href=\"$targetpage?page=$lastpage\">$lastpage</a>";  
      } 
      //in middle; hide some front and some back 
      elseif($lastpage - ($adjacents * 2) > $page && $page > ($adjacents * 2)) 
      { 
       $pagination.= "<a href=\"$targetpage?page=1\">1</a>"; 
       $pagination.= "<a href=\"$targetpage?page=2\">2</a>"; 
       $pagination.= "..."; 
       for ($counter = $page - $adjacents; $counter <= $page + $adjacents; $counter++) 
       { 
        if ($counter == $page) 
         $pagination.= "<span class=\"current\">$counter</span>"; 
        else 
         $pagination.= "<a href=\"$targetpage?page=$counter\">$counter</a>";     
       } 
       $pagination.= "..."; 
       $pagination.= "<a href=\"$targetpage?page=$lpm1\">$lpm1</a>"; 
       $pagination.= "<a href=\"$targetpage?page=$lastpage\">$lastpage</a>";  
      } 
      //close to end; only hide early pages 
      else 
      { 
       $pagination.= "<a href=\"$targetpage?page=1\">1</a>"; 
       $pagination.= "<a href=\"$targetpage?page=2\">2</a>"; 
       $pagination.= "..."; 
       for ($counter = $lastpage - (2 + ($adjacents * 2)); $counter <= $lastpage; $counter++) 
       { 
        if ($counter == $page) 
         $pagination.= "<span class=\"current\">$counter</span>"; 
        else 
         $pagination.= "<a href=\"$targetpage?page=$counter\">$counter</a>";     
       } 
      } 
     } 

     //next button 
     if ($page < $counter - 1) 
      $pagination.= "<a href=\"$targetpage?page=$next\">next »</a>"; 
     else 
      $pagination.= "<span class=\"disabled\">next »</span>"; 
     $pagination.= "</div>\n";  
    } 

    echo "<div align=left>$text</div>"; 
    echo "<table align=center> 
    <div align=left><tr>\n 
    <td>Records Found: $num &nbsp; \n 
    <td> &nbsp;\n 

</tr>\n 
<tr> \n</div>"; 
$counter=0; 
while($row=mysql_fetch_array($result)) 
{ 

回答

0

如果你想继续POST和GET变量,你实际上应该有一些隐藏的输入字段。所以当你渲染新页面时,你将所有值从$ _REQUEST分配到它们各自的输入。因此你将在稍后提供。

例如

<input type="hidden" name="country" value="<?php echo empty($_REQUEST['country'] ? '':$_REQUEST['country']; ?>"/> 

作为替代方案,如果您有会话,则可以将它们存储到会话变量中。

0

如果您希望当前的搜索值在$_POST中可用,那么您必须将它们发布。您正在向index.php?page=2发出GET请求,所以搜索条件将不存在(在GET或POST中)。

您可以将它们包含在GET中,并从$_GET中读取它们,而不是在顶部的循环中。那么你的所有链接将不得不包括所有的搜索参数,如下所示:

"<a href=\"$targetpage?page=$counter&name=$name&country=$country&ip=$ip&map=$map...