Помощник
|
поиск в БД от и до |
Ольга_hb
|
Сообщение
#1
|
||
|
|
||
|
|||
Ольга_hb
|
Сообщение
#2
|
|
Я наверно непонятно описала задачу
Мне нужно внести изменения подобные http://auto.gorod55.ru/find.asp в поиске цены. А у меня пока так написано: [php]<td> Цена тыс.руб.</td><td><input type="text" name='cena' value="<?=$cena?>"></td></tr> [/php] т.е. поле для ввода с и до я создать могу, а как сделать, чтобы поиск искал "с" и "до"? |
|
|
Galen |
22.6.2009, 20:58;
Ответить: Galen
Сообщение
#3
|
|
В SQL есть BETWEEN для таких целей.
|
|
|
Ольга_hb
|
Сообщение
#4
|
|
А на русском языке есть подобная информация?
|
|
|
Ворон |
23.6.2009, 12:32;
Ответить: Ворон
Сообщение
#5
|
|
|
|
|
Ольга_hb
|
Сообщение
#6
|
|
Ух, ты, здорово, попробую!
|
|
|
Ольга_hb
|
Сообщение
#7
|
|
У меня с первого раза опять не получается :wacko:
[PHP] $additional=""; if (isset($_GET["cena"]) && !empty($_GET["cena"])) $additional .= " AND `cena` = '{$_GET["cena"]}'"; [/PHP] Вот как я изменила запрос: [PHP]$query = "SELECT * FROM `avto` WHERE 1 ".$additional." where cena BETWEEN ".$ot." AND ".$do; [/PHP] и соответственно форму поиска [PHP] <td> Цена тыс.руб. </td><td> от<input type="text" name='cena' value="<?=$ot?>">до <input type="text" name='cena' value="<?=$do?>"> </td></tr> [/PHP] PHP меня снова непонял (точнее я его) и ругается на переменные ot и do Где я напутала? |
|
|
Ворон |
23.6.2009, 17:44;
Ответить: Ворон
Сообщение
#8
|
|
1. в запросе не то написано.
у вас две секции WHERE в запросе чего быть не может. сделайте одну. если у вас несколько условий, то они могут соединяться друг с друг другом при помощи операндов OR, AND (в зависимости от того, что вам нужно). к примеру: SELECT * FROM AVTO WHERE CENA BETWEEN $OT AND $DO т.е. должна быть конструкция типа ПОЛЕ = ЗНАЧЕНИЕ. если же у вас в $additional хранится куча всякий условий, хотя вроде это не так (на марку, пробег, объем движка), тогда SELECT * FROM AVTO WHERE (CENA BETWEEN $OT AND $DO) AND ($ADDITIONAL) но не забывайте, что $additional должен состоять из конструкций: ПОЛЕ1 = ЗНАЧЕНИЕ1 AND|OR ПОЛЕ2 = ЗНАЧЕНИЕ2 2. поменяйте логику в формировании $additional или там собирайте все условия, не добавляйте ничего в запросе. или собирайте только часть, а ограничение по цене вынесите в запрос даешь единообразие |
|
|
Ольга_hb
|
Сообщение
#9
|
|
2. поменяйте логику в формировании $additional или там собирайте все условия, не добавляйте ничего в запросе. или собирайте только часть, а ограничение по цене вынесите в запрос Скрипт поиска писала не я, как и что поменять в логике просто не знаю, пока сделала следующее: строку $query = "SELECT * FROM `avto` WHERE 1 ".$additional." where cena BETWEEN ".$ot." AND ".$do; заменила на $query = "SELECT * FROM `avto` WHERE 1 (CENA BETWEEN $OT AND $DO) AND ($ADDITIONAL)"; Теперь надо внести изменение в: $additional должен состоять из конструкций: ПОЛЕ1 = ЗНАЧЕНИЕ1 AND|OR ПОЛЕ2 = ЗНАЧЕНИЕ2 $additional и правда много разных условий содержит [php]if (isset($_GET["marka"]) && !empty($_GET["marka"])) $additional .= " AND `marka` LIKE '%{$_GET["marka"]}%'"; if (isset($_GET["model"]) && !empty($_GET["model"])) $additional .= " AND `marka` LIKE '%{$_GET["model"]}%'"; if (isset($_GET["gv"]) && !empty($_GET["gv"])) $additional .= " AND `gv` = '{$_GET["gv"]}'"; if (isset($_GET["obem"]) && !empty($_GET["obem"])) $additional .= " AND `obem` = '{$_GET["obem"]}'"; if (isset($_GET["kpp"]) && !empty($_GET["kpp"])) $additional .= " AND `kpp` = '{$_GET["kpp"]}'"; if (isset($_GET["privod"]) && !empty($_GET["privod"])) $additional .= " AND `privod` = '{$_GET["privod"]}'"; if (isset($_GET["cena"]) && !empty($_GET["cena"])) $additional .= " AND `cena` = '{$_GET["cena"]}'"; if (isset($_GET["sost"]) && !empty($_GET["sost"])) $additional .= " AND `sost` = '{$_GET["sost"]}'"; [/php] Пробовала сделать предложенное, но меняю что-то не то или не так |
|
|
Ворон |
24.6.2009, 22:06;
Ответить: Ворон
Сообщение
#10
|
|
и вот в эту кучу проверок вам нужно добавить еще одну, которая создаст условие
cena between $ot and $do а сам запрос будет: $query = "select * from avto" . ($additional ? " where $additional" : ""); пробел не потеряйте |
|
|
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
Smmsearch.net - поиск самой дешевой накрутки в социальных сетях. | 0 | Professor7717 | 3294 | 13.8.2021, 19:53 автор: Professor7717 |
|
Поиск кодера в команду. PHP, Pyton. На постоянку. | 7 | getsend_mw | 2867 | 3.2.2021, 21:15 автор: getsend_mw |
|
Поиск копирайтера на игровую тематику Поиск копирайтера на игровую тематику |
4 | a1ex777 | 1653 | 2.10.2020, 16:01 автор: AndreyBozhenko |
|
SmmBox - поиск, аналитика и отложенная публикация в соцсетях. Официально! | 23 | smmbox | 11940 | 13.5.2020, 11:12 автор: smmbox |
|
Поиск, сбор информации, парсинг (недорого) Предлагаю услуги по поиску, сбору информации, парсингу и т.д. |
0 | Kabardin | 1351 | 11.3.2020, 14:59 автор: Kabardin |
Текстовая версия | Сейчас: 25.4.2024, 2:16 |