当我转到下一页(从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 \n
<td> \n
</tr>\n
<tr> \n</div>";
$counter=0;
while($row=mysql_fetch_array($result))
{
答案 0 :(得分:0)
如果你想继承POST和GET变量,你实际上应该有一些隐藏的输入字段。因此,当您渲染新页面时,您将$ _REQUEST中的所有值分配给它们各自的输入。因此,您将在以后使用它们。
e.g。
<input type="hidden" name="country" value="<?php echo empty($_REQUEST['country'] ? '':$_REQUEST['country']; ?>"/>
作为替代方案,如果您有会话,则可以将它们存储到会话变量中。
答案 1 :(得分:0)
如果您希望当前搜索值在$_POST
中可用,则必须对其进行POST。您正在向index.php?page=2
发出GET请求,因此搜索字词不会出现(在GET或POST中)。
您可以将它们包含在GET中,然后从$_GET
中读取它们,而不是在顶部的循环中读取它们。然后,您的所有链接都必须包含所有搜索参数,如下所示:
"<a href=\"$targetpage?page=$counter&name=$name&country=$country&ip=$ip&map=$map...