Задавайте вопросы, мы ответим
Вы не зашли.
Всем привет
признаюсь сразу я - мускулистый чаник именно по этому пришел сюда
поставили передо мной задачу, которую я пока не смог решить и в связи с этим решил обратиться к спецам за помощь
исходные данные
сайт продажи/покупки авто
задача
на странице с выводом информаци о машине должны показываться похожие объявления
в данном случае похожие означает: выводятся 2 машины с ценой ниже выбранной и 2 машины с ценой выше выбранной
причем у них еще должен совпадать тип (т.е. легковые машы либо грузовики, либо автобусы )
id - номер объявления
atype - как раз этот тип (от 1 до 7 )
price - цена
active - объявление активно или нет (1 или 0 )
ход моих размышлений
из базы выбираем все активные объявления и сортируем по цене, причем тип выбранных авто должен совпадать
SELECT * FROM a_messages WHERE active=1 AND atype= 1 ORDER BY price DESC ;
а потом среди этих данных надо найти номер текущего объявления (id) и выбрать 2 выше ценой и 2 ниже ценой
подскажите пожалуйста как это правильно сделать
Неактивен
Пусть _ID_, - id выбранного объявление.
Получим его цену:
SELECT price FROM messages WHERE id=_ID_
_PRICE_ пусть будет его цена.
Две машины чуть подороже -
SELECT * FROM messages WHERE price>_PRICE_ AND active = 1 AND atype = 1 ORDER BY _PRICE_ ASC LIMIT 2;
Две машины чуть подешевле -
SELECT * FROM messages WHERE price<_PRICE_ AND active = 1 AND atype = 1 ORDER BY _PRICE_ DESC LIMIT 2;
На полях id и price имеет смысл поставить индексы (если id primary key, то индекс по id не нужен, поскольку первичный ключ всегда содержит в себе уникальный индекс).
Неактивен
deadka, спасибо большое все получилось
глядишь с Вашей помошью чемунибудь научусь
Неактивен