
![]() |
Здравствуйте Гость ( Вход | Регистрация ) |
|
|
|
![]() ![]() ![]() |
![]() |
۩
Дата
|
![]() Новичок ![]() Профиль Группа: Пользователь Сообщений: 35 Пользователь №: 38863 На форуме: Карма: ![]() |
имеется бд. скрин нужной части ниже.
на сервер приходит массив
где $a[0] - это id подкатегории, все остальные элементы массива это ограничения (в виде ид элемента) вот как отфильтровать данные по нужным нам ограничениям(элементом) и выбранной подкатегории. у меня нету пока никаких вариантов. Буду благодарен за любой совет или помощь. внизу запрос, который фильтрует у меня данные по выбранной подкатегории:
структура бд ниже скачать файл bd.png Присоединённое изображение ![]() |
![]() |
۩
Дата
|
![]() Новичок ![]() Профиль Группа: Пользователь Сообщений: 35 Пользователь №: 38863 На форуме: Карма: ![]() |
может быть, я что то плохо описал, или требуются еще какие-то куски кода, могу добавить
|
![]() |
|
![]() ![]() Помагите Здесь живу!!! ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Эксперт ![]() Сообщений: 23010 Пользователь №: 20039 На форуме: Карма: 623 ![]() |
1)
AND Organization.id_subcat = ".$a[0]." "; Но в таблице Organization нет колонки id_subcat . 2) Что за подкатегория? Я не вижу таблицы subcat Очень тяжело разобраться. Гораздо проще было бы простым языком, вот города, вот страны, вот у меня есть такой параметр как "город = Украина" и хочу выбрать то и то. П.С. Это лично мне. -------------------- Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum). |
![]() |
|||
![]() Здесь живет ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Форумчанин ![]() Сообщений: 6460 Пользователь №: 35718 На форуме: Карма: 208 ![]() |
я не вижу id_subcat ни в таблице Organization, ни в какой либо другой, это как так? Сам запрос конечно "не фонтан". -------------------- |
||
![]() |
۩
Дата
|
||
![]() Новичок ![]() Профиль Группа: Пользователь Сообщений: 35 Пользователь №: 38863 На форуме: Карма: ![]() |
исправил Присоединённое изображение ![]() |
||
![]() |
۩
Дата
|
![]() Новичок ![]() Профиль Группа: Пользователь Сообщений: 35 Пользователь №: 38863 На форуме: Карма: ![]() |
пытался как-то так:
Это сообщение отредактировал Sergeiqwe93 - 3.04.2014 - 18:06 |
![]() |
۩
Дата
|
![]() Новичок ![]() Профиль Группа: Пользователь Сообщений: 35 Пользователь №: 38863 На форуме: Карма: ![]() |
здесь не полная структура бд. вставил только то что нужно для запроса.
попробую объяснить. есть категории организаций, они разделяются на подкатегории. Также есть категории елементов(ограничений). В таблице элементы хранятся данные, к примеру, лестница, пандусы и т.д. есть таблица nobarrer c помощью ее я связываю таблицы адрес и елемент(так как связь многи ко многим) поле value, ознаечает галичие, то есть 1-есть, 0-нет если мне нужно отфильтровать данные для выбранной подкатегории - это не проблема, простой запрос, он у меня написан. как мне написать расширенный фильтр с учетом выбранных ограничений? |
![]() |
۩
Дата
|
![]() Новичок ![]() Профиль Группа: Пользователь Сообщений: 35 Пользователь №: 38863 На форуме: Карма: ![]() |
наверное ни очень получилось на словах
|
![]() |
۩
Дата
|
![]() Новичок ![]() Профиль Группа: Пользователь Сообщений: 35 Пользователь №: 38863 На форуме: Карма: ![]() |
подскажите пожалуйста, что хоть почитать. пример может быть какой-то... вот запросы я писал часто, но с такой ситуацией не сталкивался. Кажется все просто, но есть сложность...
моим запросом я достаю все организации, адреса орг. и т.д. организация может находится сразу по нескольким адресам, и по одному адресу может находится неск. орг. по этому возникла потребность в таблице Organ_Adres для каждой такой связки есть n количество элементов, которые либо есть либо нет. Элементов, например, перила, лестницы, подъемники и т.д. всего их сейчас в бд 24 различных, имеющих свой уникальный идентификатор. Тоесть в таблице No_barrier будет 24 записи к каждой связке адрес_орган(ид_адрес_орган), имеющих значение 1 или 0. На вопрос зачем записи с 0? Заполнением бд, занимался не я. мне кажется было бы лучше только с 1 хранить. нужен запрос, который вернет мне name(организации). имеется массив $a, где a[0]-это ид подкатегории(можно даже взять категории, это не важно, вопрос в другом), остальные id елемента помогите хоть чем. совет, если он не касается изменения структуры бд и данных - хорошо, пример - еще лучше. возможно все окажется просто, вот я просто кастыль писать не хочу с кучами запросов. помогите) |
![]() |
|
![]() ![]() Помагите Здесь живу!!! ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Эксперт ![]() Сообщений: 23010 Пользователь №: 20039 На форуме: Карма: 623 ![]() |
какой фильтр, что надо получить.
Распиши конкретно ВХОДЯЩИЕ данные и ИСХОДЯЩИЕ. Придумаем тебе. -------------------- Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum). |
![]() |
۩
Дата
|
![]() Новичок ![]() Профиль Группа: Пользователь Сообщений: 35 Пользователь №: 38863 На форуме: Карма: ![]() |
входящие данные - Organization.id_subcat (можно id_cat_org), No_barrier.id_elem(их может быть несколько)
на выходе - например, Organization.name Это сообщение отредактировал Sergeiqwe93 - 4.04.2014 - 05:05 |
![]() |
۩
Дата
|
![]() Новичок ![]() Профиль Группа: Пользователь Сообщений: 35 Пользователь №: 38863 На форуме: Карма: ![]() |
Ребята, ну помогите хоть чем... Вообще не знаю как подойти. то ли кучу селектов писать, то ли еще что-нибудь.
|
![]() |
|
![]() ![]() Помагите Здесь живу!!! ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Эксперт ![]() Сообщений: 23010 Пользователь №: 20039 На форуме: Карма: 623 ![]() |
Согласно т/з:
входящие данные - Organization.id_subcat (можно id_cat_org), No_barrier.id_elem(их может быть несколько) на выходе - Organization.name SELECT a.`organization_name` Должно работать. Дальше лишнее из WHERE убери, то есть в зависимости от входящих данных подставлять будешь нужное. Если данные будут дублироваться, то можно порезать очень просто через GROUP BY a.`id` или a.`organization_name` , или LIMIT 1. _________________________________ На своей практике замечал, что несколько select во вложенности работают быстрее, чем LEFT JOIN, RIGHT JOIN. Поэтому не бойся строить лесенку, лучше 3 небольших запроса, чем 1 запрос столь сложный для БД, как я выше изобразил. Зато запрос сразу всё за тебя сделает. -------------------- Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum). |
![]() |
۩
Дата
|
![]() Новичок ![]() Профиль Группа: Пользователь Сообщений: 35 Пользователь №: 38863 На форуме: Карма: ![]() |
спасибо большое) пока не проверял, проверю-отпишу
|
![]() |
۩
Дата
|
![]() Новичок ![]() Профиль Группа: Пользователь Сообщений: 35 Пользователь №: 38863 На форуме: Карма: ![]() |
inpost, еще раз спасибо большое)
вот что получилось: SELECT a.`sh_name` здесь WHERE d.`id_elem` IN (1,2,3) Оператор IN определяет набор значений в которое данное значение может или не может быть включено. А есть какой-нибудь оператор, который определяет набор значений должно быть обязательно вкл |
![]() |
![]() ![]() ![]() |