Ситуация выглядит следующим образом: пользователь заполняет форму, форма передает в скрипт значения переменных $a, $b. Далее скрипт используя эти переменные в запросе к базе выводит из нее информацию постранично. Чтобы значения переменных сохранялись на других страницах(кроме первой) была использована сессия. Проблема заключается в том, что если вновь перейти на страницу с формой и изменить поля а,b. То суже не реагирует на новые значения этих переменных(старые значения сохраняются до выключения браузера). Подскажите пожалуйста, как можно избежать этой ситуации.
Далее приведен код скрипта.
CODE (text):
скопировать код в буфер обмена
скопировать код в буфер обмена
- <?php
- session_start();
- //Создадим функцию page(), которая обрабатывает данные о запрошенном номере страницы:
- function page()
- {
- if(empty($_GET["page"])){
- $page = 0;
- } else {
- if(!is_numeric($_GET["page"])) die("Неправильный формат номера страницы!");
- $page = $_GET["page"];
- }
- return $page;
- }
- //Проверяет выбрана ли страница и если в ней присутствуют буквы,
- // то выводит сообщение об ошибке. Далее сделаем SQL-запрос:
- function sql_query($onpage, $page, $table, $a, $b)
- {
- $begin = $page*$onpage; // откуда начинать
- $sql = "SELECT * FROM ".$table." c='".$a."' and
- d>='".$b."' and LIMIT ".$begin.", ".$onpage;
- $result = mysql_query($sql) or die(mysql_error());
- return $result;
- }
- //Функция навигации:
- function navigation($onpage, $page, $table)
- {
- $return = null;
- $count = mysql_query("SELECT COUNT(*) FROM k") or die(mysql_error());
- $count = mysql_fetch_array($count);
- $count = $count[0];
- $pages = $count/$onpage;
- if($page!==0){
- $prev = "<A HREF=\"?page=".($page-1)."\"><</A>";
- } else {
- $prev = "<";
- }
- if($page<round($pages-1)){
- $next = "<A HREF=\"?page=".($page+1)."\">></A>";
- } else {
- $next = ">";
- }
- for($i=0;$i<$pages;$i++)
- {
- if($i==$page){
- $return.="[".($i+1)."]";
- } else {
- $return.="<A HREF=\"?page=".$i."\">[".($i+1)."]</A>";
- }
- }
- return $prev.$return.$next;
- $onpage = 10; // записей на страницу
- $table = "k"; // из какой таблицы
- mysql_connect("localhost", "root", "") or die(mysql_error()); // коннект к БД
- mysql_select_db("houses"); // выбор БД
- $page = page(); // определяем страницу
- $result = sql_query($onpage, $page, $table, $a, $b); // sql - запрос
- //вывод инфы
- $navigation = navigation($onpage, $page, $table); // определим навигацию
- echo $navigation; // выведем ее
- $_SESSION['a'] = "$a";
- $_SESSION['b'] = "$b";
- mysql_close(); // отключение от БД