Здравствуйте.
sqlQuery = "SELECT * FROM ".DATA_TABLE."180 where status=0 and f190 = 'Процессор'";
$result = sql_query($sqlQuery);
$row = sql_fetch_array($result);
f190 = 'Процессор' - связанное поле
Подскажите пожалуйста, почему не фильтр не работает.
1
Фильтр по связанным таблицам
Автор kaganat, 29 июня 2015 14:00
Сообщений в теме: 3
#1
Отправлено 29 Июнь 2015 - 14:00
#2
Отправлено 29 Июнь 2015 - 17:41
Потому что в полях связи всегда хранятся id связанных записей, а не значения отображаемых полей. Т.е, в данном случае вы должны узнать значение ID строки связанной таблицы, в которой хранится значение "Процессор".
#3
Отправлено 30 Июнь 2015 - 07:18
id связанной таблицы равно f270
В данной ситуации мне так прописать:
sqlQuery = "SELECT * FROM ".DATA_TABLE."180 where status=0 and f270 = 'Процессор'";
В данной ситуации мне так прописать:
sqlQuery = "SELECT * FROM ".DATA_TABLE."180 where status=0 and f270 = 'Процессор'";
#4
Отправлено 30 Июнь 2015 - 10:34
Вы совсем не поняли меня. Запрос должен быть такого вида:
sqlQuery = "SELECT * FROM ".DATA_TABLE."180 where status=0 and f190 = 111";
где 111 - id связанной записи, а не таблицы или поля. Запись - это строка таблицы. Id записи - это значение системного поля ID в данной строке. Или по другому, это значение параметра line в адресной строке просмотра записи. Например, у вас есть связанная таблица, где 3 строки:
ID Название
1 Мат.плата
2 Блок питания
3 Процессор
В этом случае, запрос с условием по полю связи со значением "Процессор" будет:
sqlQuery = "SELECT * FROM ".DATA_TABLE."180 where status=0 and f190 = 3";
т.к. id у нужной строки - 3.
sqlQuery = "SELECT * FROM ".DATA_TABLE."180 where status=0 and f190 = 111";
где 111 - id связанной записи, а не таблицы или поля. Запись - это строка таблицы. Id записи - это значение системного поля ID в данной строке. Или по другому, это значение параметра line в адресной строке просмотра записи. Например, у вас есть связанная таблица, где 3 строки:
ID Название
1 Мат.плата
2 Блок питания
3 Процессор
В этом случае, запрос с условием по полю связи со значением "Процессор" будет:
sqlQuery = "SELECT * FROM ".DATA_TABLE."180 where status=0 and f190 = 3";
т.к. id у нужной строки - 3.
Количество пользователей, читающих эту тему: 2
0 пользователей, 2 гостей, 0 анонимных