![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
pirrat |
|
||||||||
Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 21.2.2007 Репутация: нет Всего: нет |
вообщем пишу свой класс,основной задачей которого будет парсинг переменных в шаблон,т.е. одним словом класс-шаблонизатор,
класс уже почти написан,но встала одна проблема- нужно написать метод класса который будет выполнять следующие задачи и идеи: а идея такова: очень часто,практически в любом коде ,встречается такой код:
думаю строки вам знакомы.. хотелось этот код оптимизировать ,и я практически справился с этой задачей,вот код: создаем обьект класса и вызываем метод класса parselist в аргументах которого пишем запрос и название шаблона для вывода:
данный код выполняет следующее: обрабатывает запрос , и выводит шаблон test.tpl ,в котором прописаны переменные ,имена которых являются названиями полей таблицы.. все работает как надо,но проблема в том что не получается обработать эти самые переменные,их можно обработать в самом метогде,но из вне не получается,вот так это должно выглядить:
вот сам класс,привожу не полностью,а только те методы которые здесь участвуют..
как я уже писал,этот код работает так как надо,за исключением того что нельзя обработать данные из бд,так как они парсятся сразу в шаблон, и что то не как не могу придумать как эти данные обработать из вне класса, т.е. нужно обработать член класса $varsql!!! очень буду благодарен,если подскажете ,как это реализовать... ЗЫ: я плохо знком с ООП,мб поэтому и не могу реализовать задачу... Это сообщение отредактировал(а) pirrat - 3.11.2007, 18:38 |
||||||||
|
|||||||||
HotHead |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 67 Регистрация: 26.10.2007 Репутация: нет Всего: 4 |
Не очень понял, что значит 3-ий кусок кода. Или там 3 и 4 строчки перепутаны местами?
А так сделайте $varsql массивом и push-те в него результаты запросов. На выходе получите массив. Правда не знаю что вы с ним будете делать. Я бы рекомендовал ввести в parselist ещё как минимум название поля (по умолчанию = '') и если оно есть, то забивать данные в массив $varsql с ключами равными значению этого поля. Так хотя бы некоторая логика появится. Или объясните куда должна обращатся строка $mtest->varsql['date']=format_time($mtest->varsql['date']); если в результате запроса вернётся несколько строчек. |
|||
|
||||
pirrat |
|
||||
Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 21.2.2007 Репутация: нет Всего: нет |
$valsql и так я вляется массивом,с ключами равными названиям полей таблицы,и значениями равными значениями этих полей,т.е. если сделать в цикле
print_r($this->varsql); то получим следующие:
и таких несколько массивов в зависимости от того сколько раз прошел цикл... можно его сделать многомерным массивом-ниже описал как.. да возможно в третьем куске кода я не верно написал,но смысл надеюсь понятен,что я хотел обработать значения из поля date функцией... по логике нужно делать так : делить эту функцию(parselist) на 2 или 3 функции,в первой мы получаем на выходе многомерный массив с индексными ключами и значениями другой массив в котором уже и будут ключи-имена полей,значения-значения этих полей... т.е. вот так:
,в второй функции циклом заменяем в массиве значения на нужные мне,и в 3 функции уже новый массив опять же циклом выводим в шаблоны.. но при таком раскладе,мне кажется игра не стоит свеч и проще будет применить стандартный процедурный подход... Это сообщение отредактировал(а) pirrat - 4.11.2007, 13:08 |
||||
|
|||||
HotHead |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 67 Регистрация: 26.10.2007 Репутация: нет Всего: 4 |
Кто вам мешает сделать массив массивов с ассоциативными ключами? Собственно fetchassoc и должен делать массив с ассоциативными ключами. Потом делаете array_push в varsql. А методе в дальнейшем используете $ff.
|
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Для профи | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |