Здравствуйте уважаемые.
Ситуация выглядит следующим образом: пользователь заполняет форму, форма передает в скрипт значения переменных $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(); // отключение от БД
(Отредактировано автором: 18 Июля, 2008 - 06:52:04)
|