У меня проблемы с сохранением результатов запроса при навигации по страницам с нумерацией страниц.
Я написал код, который создает запрос 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-запрос, означающий, что я просто получаю все записи в таблице, а не результаты, основанные на поиске.
До сих пор я пытался использовать куки-файлы, чтобы сохранить переменную, сгенерированную формой поиска, и отключить куки-файл, когда пользователь отправляет другой поиск.Это работает в некоторой степени, но по какой-то причине после выбора ссылки на страницы 2 раза 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!
Я в недоумении, поэтому любые указатели будут с благодарностью.
Спасибо