|
|
|
| Есть запрос
$query = "select * from `prod` where `ton` LIKE '%$ton%'
AND `bot` LIKE '%$bot%'
AND `price` >= '$price'
AND `price` <= '$price1'
ORDER BY `id` DESC";
проблема в следующем:
при поиске через форму все работает, а вот при первоначальной загрузке этой страницы не дает ни одной строки из базы, и именно из-за поиска интервала цен.
Цены хранятся в столбце с типом DECIMAL.
Подскажите по синтаксису, а то я с больше/меньше первый раз столкнулся. | |
|
|
|
|
|
|
|
для: 7han
(22.12.2008 в 13:41)
| | 1) Используйте BETWEEN
2) Назначьте значение для интервала по умолчанию, видимо, у Вас его нет | |
|
|
|
|
|
|
|
для: USED
(22.12.2008 в 13:59)
| | BETWEEN пробовал - не помогает, то же самое.
По умолчанию значения стоят. | |
|
|
|
|
|
|
|
для: 7han
(22.12.2008 в 14:15)
| | Напишите, какой запрос у вас получается по умолчанию (подставив значения вместо переменных) | |
|
|
|
|
|
|
|
для: USED
(22.12.2008 в 14:21)
| | Без "лишнего" вот такой:
$query = "select * from `prod` where `price` >= 0 AND `price` <= 90000000 ORDER BY `id` DESC"; | |
|
|
|
|
|
|
|
для: 7han
(22.12.2008 в 14:38)
| | Смею предположить, что наверное все же такой:
$query = "select * from `prod` where `price` >= '0' AND `price` <= '90000000' ORDER BY `id` DESC";
|
?
и много ли значений удовлетворяют этим условиям? | |
|
|
|
|
|
|
|
для: USED
(22.12.2008 в 15:08)
| | Мне надо, чтобы все удовлетворяли. Подскажите как надо. | |
|
|
|
|
|
|
|
для: 7han
(22.12.2008 в 15:14)
| |
select * from `prod` order by `id` desc
|
вас не устроит? | |
|
|
|
|
|
|
|
для: USED
(22.12.2008 в 15:25)
| | а каким образом тогда осуществить выбор пользователем интервала цен? | |
|
|
|
|
|
|
|
для: 7han
(22.12.2008 в 15:29)
| | >> при поиске через форму все работает, а вот при первоначальной загрузке этой страницы не дает ни одной строки из базы
как я понял, проблема при первом открытии страницы; когда необходимо вывести все записи из базы | |
|
|
|
|
|
|
|
для: USED
(22.12.2008 в 15:48)
| | Все правильно, но ведь форма и этот запрос находятся на одной (этой же) странице. | |
|
|
|
|
|
|
|
для: 7han
(22.12.2008 в 16:04)
| |
if ( юзер нажал кнопку "поиск" )
$query = "select * from `prod` where `ton` LIKE '%$ton%'
AND `bot` LIKE '%$bot%'
AND `price` >= '$price'
AND `price` <= '$price1'
ORDER BY `id` DESC";
else // юзер ничего не нажимал, он только что попал на страницу
$query = "select * from `prod` order by `id` desc";
|
само действие "юзер нажал.." думаю сможете определить только Вы по известным условиям | |
|
|
|
|
|
|
|
для: USED
(22.12.2008 в 16:20)
| | Благодарю!
Я просто думал, что есть возможность одним запросом реализовать. | |
|
|
|
|
|
|
|
для: 7han
(22.12.2008 в 16:28)
| | конечно есть. просто он должен динамически формироваться | |
|
|
|
|
|
|
|
для: Loki
(23.12.2008 в 13:04)
| | Может подскажете как? | |
|
|
|
|
|
|
|
для: 7han
(23.12.2008 в 16:10)
| |
<?php
$cond = "";
if( ... )
{
$cond = " WHERE `price` BETWEEN ... AND ... ";
}
$query = "SELECT ... {$cond} ORDER BY `id` DESC;";
?>
|
| |
|
|
|
|
|
|
|
для: BinLaden
(23.12.2008 в 16:37)
| | О, спасибо, попробую. | |
|
|
|