- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу

Как снизить ДРР до 4,38% и повысить продажи с помощью VK Рекламы
Для интернет-магазина инженерных систем
Мария Лосева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Есть база, со значениями, в ней есть страна, область, город, район. Все хранится в одной таблице, и есть parent значение, где например, КИЕВСКАЯ ОБЛАСТЬ ЯВЛЯЕТСЯ детем страны УКРАИНЫ.
По такому принципу база более 5000 значений. По ней есть поиск, с выбором этих характеристик у объявления.
Например, при заполнении указанных на картинке полей, идет такой запрос в БД:
(SELECT scp.`announcement_cat_page_id` , COUNT(*) as count FROM `announcement_catalog_page` AS `scp`
INNER JOIN announcement_cat_page_properties AS scpp ON scpp.announcement_cat_page_properties_producer_extend = scp.announcement_cat_page_producer_extend AND scpp.announcement_cat_page_properties_product_id = scp.announcement_cat_page_id AND (
CASE
WHEN announcement_cat_page_properties_parentid='1' THEN ( announcement_cat_page_properties_types_value_int='2' ) WHEN announcement_cat_page_properties_parentid='2' THEN ( announcement_cat_page_properties_types_value_int='14' ) WHEN announcement_cat_page_properties_parentid='3' THEN ( announcement_cat_page_properties_types_value_int='369' ) WHEN announcement_cat_page_properties_parentid='4' THEN ( announcement_cat_page_properties_types_value_int='6590' )
ELSE NULL
END
)
GROUP BY announcement_cat_page_id
HAVING count > 3
) Число 3- определяется количеством выбранных полей.
В выдаче будут все объявления у которых указаны данные свойства. Так оно работает, но мне надо так, что бы можно было указать не только одниг город, а несколько. Как это сделать?
например: announcement_cat_page_properties_types_value_int='2' - украна
announcement_cat_page_properties_types_value_int='14' - киевская область
announcement_cat_page_properties_types_value_int='369' - киев
Учитывая, что у объявлений может быть та же страна к множесту объявлений, то через OR (announcement_cat_page_properties_types_value_int='XX' OR announcement_cat_page_properties_types_value_int='YY' ) не работает. Выдаются и не нужные значения, напримре если указана украина, киевская область, и другой город, не Киев, то оно все равно будет показано.
Как сделать что бы выводились все значения, но с учетом наследий. Напрмиер если выбрана киевскя область, Киев, Печерский район, и Донецкая область, то что бы в выдаче выбрались толкько из ПЕЧЕРКСКОГО РАЙОНА (дети Киева, Области и Украины), и ДОНЕЦКОЙ ОБЛАСТИ. ?
не знаю как остальным, а мне хотелось бы увидеть структуру этой таблицы с несколькими записями для примера :)
Там по сути 3 таблицы. Одна с объявлением, вторая со свойствами которые доавбляются к обхявлению в виде ОБЛАСТи, СТРАНЫ, и т.п. Их к одному объявлению столько, сколько параметров задает посетитель. И третья таблица с самими параметрами (их перечнет) на рис. выше.
announcement_cat_page_properties
Данне к объявленим так выглядят в таблице
announcement_cat_page_properties_product_id - id продукта,
announcement_cat_page_properties_types_value_int - = ID того свойства к которому соотстветвует объявление, из таблицы выше,
announcement_cat_page_properties_id announcement_cat_page_properties_parentid announcement_cat_page_properties_producer_extend announcement_cat_page_properties_types_value_int announcement_cat_page_properties_types_value_text announcement_cat_page_properties_show announcement_cat_page_properties_product_id
1 1 4471 2 0 1
2 2 4471 14 0 1
3 3 4471 356 0 1
4 4 4471 6256 0 1
5 5 4471 122 0 1
6 6 4471 132 0 1
7 7 4471 151 0 1
8 1 4471 2 0 2
9 2 4471 19 0 2
10 3 4471 505 0 2
11 4 4471 10172 0 2
12 5 4471 124 0 2
13 6 4471 154 0 2
14 7 4471 151 0 2
15 1 4471 2 0 3
16 2 4471 14 0 3
17 3 4471 369 0 3
18 4 4471 6581 0 3
19 5 4471 122 0 3
20 6 4471 132 0 3
21 1 4471 2 0 4
22 2 4471 8 0 4
23 3 4471 211 0 4
24 4 4471 2525 0 4
25 5 4471 122 0 4
26 6 4471 133 0 4
Еще какие таблицы надо?
Объявления появляются только при выборе третьего уровня вложенности? Всмысле район-село?
Просто таблица с параметрами/ и их значениями - это часть интерфейса. Никто же не мешает потом сделать
select * from objavleniya where region3urovnya in(spisok_vybrannyh_regionov)?
Если можно распишите организацию работы скрипта по шагам. По запросу видно, что вы просто пошли не тем путем при организации работы скрипта или структурировании данных - задача очень часто встречается и я просто не могу понять для чего у вас такие танцы с бубном сделаны.
Так же можно не считать количество, а в поля запроса вывести region1, region2, region3 и в WHERE строить условие
А можно про последнее пример?
про организацию через @Так же можно не считать количество, а в поля запроса вывести region1, region2, region3 и в WHERE строить условие@, возможно я что-то упустил.
Такая организация для того, что бы при поиске можно было много уровней выбирать, ранее когда ИСКЛЮЧАЛИСЬ все что не соотвестуют выбранным - то было ок, а сейчас надо что бы можно было например, несколько стран выбрать. При этом если в стране выбраны дочерние области, то значит выводить только из указанных областей, и так далее, если выбран район то только из выбранных районов. Если не выбраны дочерние данные то выводить все... Идея такая.
Например, выбрас РОССИЯ, МОСКВА, вывести все из Москрвы, а если доп. стоит Украина Киев, то в итоге КИЕВ + МОСКВА в выдавче. А если Киев МОСКВА + БЕларусь то значит все что беларуси. Если через OR то практически т очто надо, за исключением того, что если выбран ДОЧЕРНИЙ ОБЪЕКТ то что бы не учитывать родителя