Здравствуйте!! думаю не сложный вопрос для здешних мастеров... хочу сделать выборку за определенный промежуток времени..пишу такой код Код (Text): $query = "SELECT * FROM t WHERE date BETWEEN '2012.02.23' AND '2012.04.11'"; все прекрасно работает, но если даты вводить через форму выборка не происходит форма......................... Код (Text): echo '<form action="excel2.php" method="post">'; echo 'Критерий ( ГГГГ.ММ.ДД )<br>'; echo '<input type="text" name="date1" size="10" value="">'; echo '<input type="text" name="date2" size="10" value="">'; echo '<input type="submit" name="submit" value="Отчет">'; echo '<input type="reset" name="reset" value="Очистить">'; echo '</form>'; excel2.php............................. Код (Text): $db = mysql_connect("localhost", "rau2", ""); mysql_select_db("baza2", $db); mysql_query("SET NAMES UTF8"); $query = "SELECT * FROM t WHERE date BETWEEN '".$_POST['date1']."' AND '".$_POST['date2']."'"; //$query = "SELECT * FROM t WHERE date BETWEEN '2012.02.23' AND '2012.04.11'"; $res = mysql_query( $query,$db ) or die("Запрос ошибочный"); $row = mysql_fetch_array($res); echo ($row); Подскажите, что не так?
А почему нужно перед запросом?когда Код (Text): $query = "SELECT * FROM t WHERE date BETWEEN '2012.02.23' AND '2012.04.11'"; такой запрос все же выводит результат, я думал проблема в форме или Код (Text): '".$_POST['date1']."' AND '".$_POST['date2']."'"; в этом.там все правильно?
Видать, у вас на сервере встроенная защита от SQL-инъекций стоит. Добавлено спустя 1 минуту 39 секунд: Код (PHP): echo "<pre>"; var_dump($_POST); echo "</pre>";
Здравствуйте, rodion4657. К первому посту темы. Покажите что Вы вводите в поля формы и напишите какой тип данных поля `date` Вашей таблицы
в поля формы ввожу две даты мне нужно сделать выборку за данный промежуток времени.тип данных date Добавлено спустя 5 минут 6 секунд: Код (Text): echo '<input type="text" name="date1" size="10" value="">'; echo '<input type="text" name="date2" size="10" value="">'; заметил такую особенность, что если сделать одинаковый в форме, то по крайней мере в запросе хоть появляются данные из формы вот Добавлено спустя 46 секунд: что это может быть?
rodion4657, напишите, пожалуйста в скрипте excel2.php в любом месте следующие строчки: Код (PHP): echo "<pre>"; print_r($_REQUEST); print_r($_POST); echo "</pre>"; Повторите Ваш запрос и покажите нам, что в находится в данных массивах. Так же попробуйте переименовать атрибуты name, например, на date_one и date_two.
rodion4657 Так же попробуйте переименовать атрибуты name, например, на date_one и date_two. Покажите html-код страницы с формой
Переименуйте атрибуты name на date_one и date_two соотвественно. Сохраните скрипт. Откройте страницу в другом браузере, в котором скрипт еще не открывали. Если там все работать будет, значит проблема в кэше
открыл)) вот данные теперь отображаютя....но почему в результате выполнения запроса нет никакой выборки...
rodion4657, возможно Вы забыли переименовать во втором скрипте переменные Код (Text): $db = mysql_connect("localhost", "rau2", ""); mysql_select_db("baza2", $db); mysql_query("SET NAMES UTF8"); $query = "SELECT * FROM t WHERE date BETWEEN '".$_POST['date_one']']."' AND '".$_POST['date_two']."'"; //$query = "SELECT * FROM t WHERE date BETWEEN '2012.02.23' AND '2012.04.11'"; $res = mysql_query( $query,$db ) or die("Запрос ошибочный"); $row = mysql_fetch_array($res); echo ($row); P.S. И спасибо за задачку - посижу, подумаю, что не так у Вас с цифрами в имени переменных и что творит кэш... Спокойной Вам ночи.
все получилось)))с последним сообщением, это уже я сам тупанул(засиделся с этим) спасибо Вам, вы очень помогли мне...будет время отпишитесь мне на счет кэша...еще раз спасибо!