使用分页链接导航时,我无法保留查询结果。
我编写了一个代码,它根据在搜索表单中选择的选项创建一个 mysql 查询。它是一个自我提交的表单,它使用将 $_POST 结果放在一个构建查询的变量中,代码如下:
<?php
if (isset($_POST)) {
$find = array();
$area = array();
if (isset($_POST ['location']) && !($_POST ['location'] == "000")) {
$find [] = $_POST ['location'];
$area [] = "location";
}
if (isset($_POST ['sector']) && !($_POST ['sector'] == "000")) {
$find [] = $_POST ['sector'];
$area [] = "sector";
}
if (isset($_POST ['hours']) && !($_POST ['hours'] == "000")) {
$find [] = $_POST ['hours'];
$area [] = "hours";
}
while ((list($key1, $val1) = each($find)) && (list($key2, $val2) = each($area))) {
if ($key1 == 0) {
$result = " WHERE " . strtolower($val2) . "= " . "'" . strtolower($val1) . "'" . " " ;
}
if ($key1 >= 1) {
$result .= "AND " . strtolower($val2) . "= " . "'" . strtolower($val1) . "'" . " " ;
}
}
} else {
$result = NULL ;
}
?>
问题在于,当我选择其中一个分页链接时,它会刷新页面,这会删除原始 sql 查询,这意味着我只获取表中的所有记录,而不是基于搜索的结果。
到目前为止,我已经尝试使用 cookie 来保留搜索表单生成的变量,当用户提交另一个搜索时取消设置 cookie。这在某种程度上有效,但由于某种原因,在选择分页链接 2 次后,cookie 消失了。
这是我附加的用于设置 cookie 的代码,您会在 if 语句的底部找到编辑:
<?php
if (isset($_POST)) {
$find = array();
$area = array();
if (isset($_POST ['location']) && !($_POST ['location'] == "000")) {
$find [] = $_POST ['location'];
$area [] = "location";
}
if (isset($_POST ['sector']) && !($_POST ['sector'] == "000")) {
$find [] = $_POST ['sector'];
$area [] = "sector";
}
if (isset($_POST ['hours']) && !($_POST ['hours'] == "000")) {
$find [] = $_POST ['hours'];
$area [] = "hours";
}
while ((list($key1, $val1) = each($find)) && (list($key2, $val2) = each($area))) {
if ($key1 == 0) {
$result = " WHERE " . strtolower($val2) . "= " . "'" . strtolower($val1) . "'" . " " ;
}
if ($key1 >= 1) {
$result .= "AND " . strtolower($val2) . "= " . "'" . strtolower($val1) . "'" . " " ;
}
}
setcookie("testcookie", "$result", time()-36000);
setcookie("testcookie", $result);
} else {
$result = NULL ;
}
?>
以下是相应代码的其余部分:
我将 cookie 分配给了一个变量:
$ret_result = str_replace('\', '', $_COOKIE["testcookie"]);
然后执行查询:
$sql = "SELECT * FROM posting $ret_result ";
我第一次提交表单时生成的查询也有问题。在将查询分配给变量之前,我必须提交表单两次。尝试删除 cookie 时也是如此!
我在这里不知所措,所以任何指针都将不胜感激。
谢谢