|
|
18.11.2010, 18:17
|
|
Гость
Гость
|
В поле "Объект в списке" пишу условие "Выводить под заголовком соответствующего объекта на странице в списке такую-то надпись, если значение поля $f_Draftpublic объекта в таблице компонента не равно 0 (нулю)":
Код:Код:";
if ($f_Draftpublic != 0) {
$nadpis = "Такая-то надпись";
} $result .= "
".opt( $f_Title , "$f_Title $nadpis" )."
Но при наличии в таблице со значением 1 (единица) только нескольких (не всех) объектов,
надпись выводится все равно под всеми объектами (даже если у них значение 0),
т.е. условие как-бы не работает.
Скажите пожалуйста, что я не так делаю?
|
|
|
18.11.2010, 19:24
|
|
Гость
Гость
|
Очень срочно нужно, кто-нибудь пожалуйста помогите разобраться.
Какая-то ж... получается, при прописывании своих условий в поле "Объект в списке".
|
|
|
19.11.2010, 00:28
|
|
Гость
Гость
|
Я думаю нужно делать проверку по !==
|
|
|
19.11.2010, 14:14
|
|
Гость
Гость
|
Спасибо, но проверка по !== не помогла.
Написал еще по-другому в поле "Объект в списке", по неткатовски:
".opt($f_Draftpublic != '1', "Такая-то надпись")."
или так:
".opt_case($f_Draftpublic != '1', "Такая-то надпись", "Не выводить надпись")."
То есть, если значение в поле 2, то выводить надпись, если значение 1, то не выводить.
Или по-другому: для всех объектов со значением отличным от 1 выводить "Такую-то надпись".
Тоже не работает, в таблице в поле Draftpublic имеются объекты со значениями как 1 так 2, но в итоге все равно выводятся все объекты с этой "Такой-то надписью". Если поменять оператор сравнения до наоборот, то у всех объектов эта надпись вообще не выводится. Насколько я понимаю, что-то со циклом, если не происходит сравнения объектов в цикле, а происходит похоже сравнение только первого объекта и по нему присваивается все остальным. Ну это первое что в голову приходит логически (не программист, дизайнер я), но пытаюсь эти дебри понять
Draftpublic - это поле с типом "Список", состоит всего из двух значений, в MySql его тип int(11).
В таблице в базе посмотрел, все значения по объектам корректно записаны: 1 или 2.
Операторы сравнения всевозможные подставлял - бесполезно.
Так почему-же не работает? Вроде мелочь такая, а не дает дальше делать.
Админы отзовитесь пожалуйста.
|
|
|
19.11.2010, 20:22
|
|
Гость
Гость
|
Разобрался сам.
За место $f_Draftpublic (имя элемента списка) надо было указывать $f_Draftpublic_id (id элемента списка).
$f_Draftpublic думал, что выводит именно как в базе записано - 1 или 2, тупо смотря на эти числовые значения в таблице базы забыл, то в неткате все уже предусмотрено приставками и суффиксами.
|
|
|
22.11.2010, 12:30
|
|
DiGGy
DiGGy
Зарегистрирован: 2005-04-04
Сообщений: 1546
|
значения переменной у вас могут быть разные - как 0 так и null , и проверку надо делать соотв-юю
Temet nosce...
|