Покинул форум
Сообщений всего: 45
Дата рег-ции: Июль 2015
Помог: 0 раз(а)
Имеется в арсенале 4 таблицы: 1.realty -> Недвижимость (id, img)
--- 2.properties -> Свойства (id, titile, value)
где titile -> Название свойства, value -> значение (в виде: 1,2,3)
Пример: 1|Город|Москва,Питер,Красноярск
--- 3.categories -> Категории (id, titile)
titile - Название категории
Пример: 1|Продажа
--- 4.properties_realty -> Таблица связка (недвижимость & свойство) (id,realty_id,property,value)
Пример: 1|1|1|2 --> Где 2 это
$value = exploder(',',$row['values']);
$value = properties.value[2];
если смотреть по примеру Выше это будет город Красноярск.
Схема обычных свойств товаров (в моём случае свойств каталога недвижимости), дабы можно было удалять и добавлять новые свойства.
Задача: вывести всю недвижимость при этом все свойства к ним + категорию.
Делал так:
Но, в запросе стоит GROUP by p.realty_id и он выводит на экран мне только первые свойства, т.е. если в таблице свойств есть еще какие-то свойства, помимо города, скажем площадь, то их он проигнорирует. Если убрать группировку то выведет мне x2 записей.
Верно ли составил запрос? Как все это правильно сделать?
Может есть какие-то идеи. Буду рад любым примерам.
Выводит мне: к первому объекту город, ко второму объекту город и комнаты. (в сумме 3) Но мне бы объеденить бы это все, дабы получилось на выходе 2 значения.
Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010
Помог: 53 раз(а)
а вкурсе в чем разница JOIN и LEFT JOIN?
Panoptik
Отправлено: 03 Сентября, 2015 - 16:01:24
Постоянный участник
Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011 Откуда: Одесса, Украина
Помог: 131 раз(а)
задача слегка противоречива, и поэтому решение вы не можете найти
если вам нужно отображать сущности в каталоге, делайте один запрос на выборку сущностей (то есть с группировкой) и еще один (или по одному на каждую сущность) для вывода всех деталей (свойств) сущности
вариант без группировки тоже имеет право на жизнь, но он не даст возможности паггинировать данные + ко всему группировку и обработку свойств придется производить непосредственно в коде, а не при помощи СУБД что не есть приятно
так что определитесь что вам надо, а уже потом спрашивайте как это сделать
----- Just do it
madlabel
Отправлено: 14 Сентября, 2015 - 21:28:17
Новичок
Покинул форум
Сообщений всего: 45
Дата рег-ции: Июль 2015
Помог: 0 раз(а)
Спасибо за ответы, подсмотрел реализацию в cms simpla. Но всплывает ещё вопрос. Как вывести все доп свойства в каталог? Причём сделать это красиво.
В симпла выводится так:
--- цикл ---
название товара
картинка
цена
--- конец цикла ---
(Название, картинка, цена - отдельные поля в таблице товаров, т.е не доп свойства, в шаблон каталога можно вывести как нужно, т.е:
$tpl->set('{name}', $row['name']) и так далее, но как быть с доп свойствами? Таким же макаром хочу их вывести в шаблон каталога, дабы можно было их красиво расположить, а не просто кучей вывести.
В симпле конечно хорошо и красиво все оформлено в каталоге для продаж техники и прочего, но как быть с недвижимостью? Помимо картинки и цены есть ещё и адреса, планировки, кол-во комнат и т.д. все это будет в свойствах (аттрибутах).
Если дергать свойства для каждого объекта в каталоге, то лично у меня получается так:
(Пример на колене)
$sql="Select * from attributes where realty_id = $row['id']";
foreach($sqlas$attr){
$attr.=$attr['name']
}
В шаблон атрибуты (свойства) вывожу так:
$tpl->set('{attributes}', $attr);
Но все свойства будут в куче один за другим, т.е расположить в шаблоне их не получится, т.к выводится все в {attributes}.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.