Перейти к содержимому


Фильтры


Сообщений в теме: 3

#1 Oleg_

    Активный участник

  • Пользователи
  • PipPipPip
  • 118 сообщений

Отправлено 12 Декабрь 2012 - 00:26

Возник такой вопрос: нужно настроить фильтры по полю "категория", но оно является связанным с таблицей "номенклатура". Я сочинил способ, но мне кажется он слишком корявый:
создаю в таблице дополнительное поле "kat", затем получаю значение "категория" из таблицы "номенклатура" для текущей записи
$k = data_table("Склад","`Статус записи`=0 AND id=".$ID,"all");
foreach ($k as $B)/>
{
$r = data_table("Номенклатура","`Статус записи`=0 AND id=".$b['Категория'],"all");
foreach ($r as $t)
{
$line['kat']=$t['Категория'];
}
}


Затем делаю фильтр по полю "kat".
вроде все работает, но хотелось бы фильтровать без посредника "kat", возможно ли?
И еще пара вопросов:
1. можно ли создать "двух этажный фильтр"? типа: 1 фильтр - "январь" - нажали, отфильтровались все записи за январь. 2 фильтр - "выполнено" - нажали и из отфильтрованных записей предыдущим фильтром выбрались записи отмеченные как "выполнено" ?
2. Можно ли как то сделать что бы последний примененный фильтр оставался по умолчанию, до тех пор пока не будет применен другой фильтр?
p.s. Вторая строчка кода изменяется сама при сохранении сообщения

Сообщение отредактировал Oleg_: 12 Декабрь 2012 - 00:34


#2 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 13 Декабрь 2012 - 09:42

1. Нет, но над этим думали уже (были аналогичные предложения), возможно в будущем добавим.
2. Нет, последний фильтр не запоминается после выхода из таблицы.

По основному вопросу - фильтр можно создать и без вычислений, путем составления условия с подчиненным запросом в режиме эксперта. См. документацию по SQL.

#3 Oleg_

    Активный участник

  • Пользователи
  • PipPipPip
  • 118 сообщений

Отправлено 13 Декабрь 2012 - 14:49

Чисто случайно примера не найдется? А то

Цитата

См. документацию по SQL.
сложновато для меня пока.

#4 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 14 Декабрь 2012 - 10:21

`Категория` in (SELECT id FROM cb_data111 WHERE f222='Имя нужной категории')

здесь: 111 - id таблицы Номенклатура, 222 - id поля Категория в таблице Номенклатура

Т.е. подчиненный запрос возвращает id записей из таблицы Номенклатура, в которых Категория равна нужной вам. Затем выбранные id используются в фильтре по полю связи Категория в таблице Склад.





Количество пользователей, читающих эту тему: 2

0 пользователей, 2 гостей, 0 анонимных