|
|
|
|
|
для: Alba
(26.06.2007 в 12:24)
| | цена не указана и цена равна нулю - разные вещи.
Спросили Вы для первого варианта, а ответ привели - для второго. | |
|
|
|
|
|
|
|
для: Alba
(26.06.2007 в 12:01)
| | Вот что получилось в итоге:
<?
$where[] = "("
." ("
." IF(a.price>0 AND a.price1>0 AND ($srh->price BETWEEN a.price AND a.price1), 1, 0)"
." OR IF(a.price=0 AND a.price1>0 AND a.price1>=$srh->price, 1, 0)"
." OR IF(a.price>0 AND a.price1=0 AND a.price<=$srh->price, 1, 0)"
." )"
." OR IF(a.price=0 AND a.price1=0, 1, 0)"
.")";
?>
|
Как считаете, не слишком ли громоздко? ведб поиск может проводиться еще по 6 полям... | |
|
|
|
|
|
|
|
для: Alba
(26.06.2007 в 11:29)
| | Все!!! Справился...
<?
...
...
$where[] = "("
." IF(a.price>0 AND a.price1>0 AND ($srh->price BETWEEN a.price AND a.price1), 1, 0)"
." OR IF(a.price=0 AND a.price1>0 AND a.price1>=$srh->price, 1, 0)"
." OR IF(a.price>0 AND a.price1=0 AND a.price<=$srh->price, 1, 0)"
.")";
...
...
?>
|
$srh->price - цена которую ввел продавец | |
|
|
|
|
|
|
|
для: Alba
(26.06.2007 в 11:21)
| | В данной таблице хранятся объявления не только о покупке авто, но и продаже...
По полю id_razdel определяется какое это объявление: о продаже или о покупке | |
|
|
|
|
|
|
|
для: Alba
(26.06.2007 в 11:20)
| | price - нижняя граница цены
price1 - верхняя граница | |
|
|
|
|
|
|
|
для: cheops
(26.06.2007 в 11:17)
| |
CREATE TABLE `prt_auto` (
`id` int(11) NOT NULL auto_increment,
`id_razdel` int(11) NOT NULL default '0',
`id_vid` int(11) NOT NULL default '0',
`id_marka` int(11) NOT NULL default '0',
`other_marka` varchar(25) NOT NULL default '',
`id_model` int(11) NOT NULL default '0',
`other_model` varchar(25) NOT NULL default '',
`price` float NOT NULL default '0',
`price1` float NOT NULL default '0',
`torg` tinyint(1) NOT NULL default '0',
`id_kuzov` int(11) NOT NULL default '0',
`color` varchar(25) NOT NULL default '',
`condition` tinyint(4) NOT NULL default '0',
`made_year` int(4) NOT NULL default '0',
`made_year1` int(4) NOT NULL default '0',
`made_month` tinyint(4) NOT NULL default '0',
`transmission` tinyint(1) NOT NULL default '0',
`steps` tinyint(1) NOT NULL default '0',
`ruder` tinyint(1) NOT NULL default '0',
`type_drive` tinyint(1) NOT NULL default '0',
`v_engine` int(11) NOT NULL default '0',
`v_engine1` int(11) NOT NULL default '0',
`type_engine` tinyint(4) NOT NULL default '0',
`gas` tinyint(1) NOT NULL default '0',
`run` int(11) NOT NULL default '0',
`power` int(11) NOT NULL default '0',
`power1` int(11) NOT NULL default '0',
`place` tinyint(4) NOT NULL default '0',
`place1` int(11) NOT NULL default '0',
`capacity` int(11) NOT NULL default '0',
`foto` text NOT NULL,
`dopolnitelno` text NOT NULL,
`audio` tinyint(1) NOT NULL default '0',
`radio` tinyint(1) NOT NULL default '0',
`cd` tinyint(1) NOT NULL default '0',
`conditioner` tinyint(1) NOT NULL default '0',
`city` int(11) NOT NULL default '0',
`ather_city` varchar(25) NOT NULL default '',
`contacts` varchar(100) NOT NULL default '',
`email` varchar(60) NOT NULL default '',
`srok` int(11) NOT NULL default '0',
`date_pub` datetime NOT NULL default '0000-00-00 00:00:00',
`date_del` date NOT NULL default '0000-00-00',
`firm_id` int(11) NOT NULL default '0',
`password` varchar(32) NOT NULL default '',
`published` tinyint(1) NOT NULL default '0',\n PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251
|
| |
|
|
|
|
|
|
|
для: Alba
(26.06.2007 в 11:16)
| | Приведите пожалуйста структуру таблицы, получить её можно при помощи оператора SHOW CREATE TABLE tbl, где tbl - имя таблицы. | |
|
|
|
|
|
|
|
для: cheops
(26.06.2007 в 11:13)
| | все готово уже, только поиск сделать осталось... | |
|
|
|
|
|
|
|
для: Alba
(26.06.2007 в 10:21)
| | Хм... а таблица объявлений у вас уже готова? | |
|
|
|
|
|
|
| Всем привет!
Есть объявления о покупке авто,
указан интервал цен от и до за которую покупатель купит авто.
При размещении объявления покупатель может вообще не указывать цены, либо один из пределов цен, т.е. верхний или нижний... либо полностью интервал
т.е. получается примерно вот что (возможные варианты):
Обявление__________Цена1__________Цена2
объявл №1 5000 20000
объявл №2 5000 ---
объявл №3 --- 20000
объявл №4 --- ---
|
нужно сделать поиск по объявлениям, т.е. когда уже заходит продавец какого-то авто и хочет продать свое авто за определенную сумму, он ее вводит и выдаются соответсвенно те объявления, где цена продавца либо входит в интервал цен, либо больше нижней цены (если верхняя не задана), либо меньше верхней цены (если не задана нижняя), либо те объявления где не задана ни один из пределов цен...
Надеюсь понятно изложил...
Пожалуйста, помогите составить запрос для реализации вышеизложенного алгоритма, либо поделитесь идеями как можно это реализовать иначе | |
|
|
|
|