Помогите разобраться с вызовом метода внутри класса |
Уважаемы монстры и гуру парсера объясните как побороть проблемму... есть пользовательский класс (например class1), внутри класса есть метод (metod1) в котором формируется таблица, далее @metod1[] ^connect[$connect_string]{$таблица1[^table::sql{ SELECT ..... }]} ^таблица1.menu{ работаем с данными таблицы ^metod2[] }
@metod2[] вычисляем переменные $перемнная1(работаем с $таблица1.столбец1) $перемнная1(работаем $таблица1.столбец2) ^connect[$connect_string]{$таблица2[^table::sql{ SELECT ..... WHERE поле1=$перемнная1 поле2=$перемнная2 }]} работаем с данными таблицы, результат работы возвращается в metod1
так вот, не смотря на то что $таблица1.столбец1 и $таблица1.столбец2 меняются при переборе строк таблицы $перемнная1 и $перемнная2 не меняются и соответственно таблица2 тоже не меняется и в результате работы кода постаянно отдается одно и то же... Что я не так делаю? Заранее спасибо всем ответившим. |
method2 ничего не знает о состоянии таблицы1 в method1. Передайте ему текущую строку:
@method1[]
^table1.menu{
работаем с данными таблицы
^metod2[$table1.fields]
}
@method2[hFields]
^connect[$connect_string]{
$таблица2[^table::sql{
SELECT .....
WHERE
поле1=$hFields.столбец1
поле2=$hFields.столбец2
}]}
P.S. вы уверены, что данный код не стоит реализовать на самом mysql с помощью JOIN? P.P.S. второй ^connect[] здесь не нужен, если конечно строка подключения не разная |
Re: Не помогло, проблемма была в логике цикла while... |
| Не помогло, проблемма была в логике цикла while... но информация все равно полезная... |
в вашем первом сообщении я почему-то не видел while... |
| скорее всего при написании сообщения в форум вы упустили какую-то важную деталь, т.к. в общем всё было корректно (хотя и не совсем красиво) |
| просто я не посчитал нужным приводить большой кусок кода в форум, а выложил только только тот кусок который по моему мнению не работал... сорри... |