Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Использование шаблонизатора xtemplate

Сообщения:  [1-10]   [11-17] 

 
 автор: confirm   (06.05.2012 в 21:32)   письмо автору
 
   для: OLi   (06.05.2012 в 21:26)
 

Значит я был прав - вы не понимаете, чего вам надо, а потому и передавали в шаблон совсем не то.
<?
foreach($res as $key) {
  
$xtpl->assign('DATA'$key);
  
$xtpl->parse('main.advesting');
}
PS. Только в данном случае (чутье мне подсказывает) необходимости в цикле нет вообще.

  Ответить  
 
 автор: confirm   (06.05.2012 в 21:29)   письмо автору
 
   для: OLi   (06.05.2012 в 21:21)
 

Еще раз говорю, я не знаю этого шаблонизатора, и разбираться в нем нет никакой охоты.
Изначально вы конструкцией передавали в тело ее, не элементы, а значения, и получали в шаблоне только первый символ этого значения. А так как строка это массив, то это наводит на мысль, что в шаблоне вы ожидаете массив, который раскладываете, а получая строку, и получаете, что получаете. Из этого следует, что вам не элементы передавать в шаблон надо, а массив.
Если все обстоит именно так, то это и есть причина.

  Ответить  
 
 автор: OLi   (06.05.2012 в 21:26)   письмо автору
 
   для: OLi   (06.05.2012 в 21:21)
 

Вопрос снят, надо было так )))
 for ($i = 0; $i < $rowsize; $i++) {

// Присваиваем блоку DATA текущий ряд массива 
$xtpl->assign('DATA', $res[$i]);

// Обрабатываем текуший ряд таблицы 
$xtpl->parse('main.advesting'); 

}
\\
Благодарю за советы по рациональному использованию ресурсов.

  Ответить  
 
 автор: OLi   (06.05.2012 в 21:21)   письмо автору
 
   для: OLi   (06.05.2012 в 21:19)
 

Вот тут есть пример, схожий с моим - может быть наведет вас на мысль
http://yvision.kz/post/1415

  Ответить  
 
 автор: OLi   (06.05.2012 в 21:19)   письмо автору
 
   для: confirm   (06.05.2012 в 21:08)
 

Проблем никаких нет с foreach - с самого начала написал, жаль, что с шаблонизатором помочь не можете, в нем проблема

  Ответить  
 
 автор: confirm   (06.05.2012 в 21:08)   письмо автору
 
   для: OLi   (06.05.2012 в 20:57)
 

Не массив к такому виду надо приводить, а еще раз повторяю - делать только необходимые выборки из ресурса. Читайте руководство, пора привыкнуть к этому.

  Ответить  
 
 автор: confirm   (06.05.2012 в 21:07)   письмо автору
 
   для: OLi   (06.05.2012 в 20:57)
 

Вот часть вашего массива (и без мусора):
<?
$a 
= array (
   array(
'name' => 'Олег'
         
'email' => 'no@mail.ru'
         
'phone' => '+373777739923'),
   array(
'name' => 'Яна'
         
'email' => '',  
         
'phone' => '546646')      
);
foreach(
$a as $v) echo $v['name'].', '.$v['email'].', '.$v['phone'].'<br>';
Проверьте, на экран будут выведены все элементы, которые я запрашиваю. Так какие претензии к конструкции foreach?
Я не знаю этого шаблонизатора, хотя по присваиванию очень похоже на Smarty, и что у вас является ошибкой не могу сказать. Вы либо не тот тип передаете, либо не так передаете/присваиваете.... В общем причину ищите не в цикле.

  Ответить  
 
 автор: OLi   (06.05.2012 в 20:57)   письмо автору
 
   для: confirm   (06.05.2012 в 20:54)
 

Ответ меня вразумил! Мне нужно передать в шаблон отдельные его элементы

Массив привел к такому виду:
Array
(
    [0] => Array
        (
            [0] => 1
            [1] => 12
            [2] => Олег
            [3] => o@mail.ru
            [4] => +37377773523
            [5] => Обо мне
            [6] => 1
            [7] => 1414
            [8] => 1
        )....

  Ответить  
 
 автор: confirm   (06.05.2012 в 20:54)   письмо автору
 
   для: OLi   (06.05.2012 в 20:42)
 

>Почему мусор?

А вы, выставляя сюда свой массив, разве не видите, что каждый его вложенный массив содержит два идентичных набора данных, один из которых индексный, а второй ассоциативный. Вы используете только один из них - ассоциативный. А второй набор это что? Хотите сказать, от него польза? Это МУСОР!
Это не просто безграмотность или незнание, это расточительство. Представьте себе, что вы таким же образом будете получать некие объемные сообщения, которые могут иметь комментарии к ним, которые в свою очередь тоже могут содержать много буковок, а не дай бог еще и картинки в базе. Да все это с объединением запросов, когда на каждый комментарий повтор сообщения, да еще и картинки...
Уже не хило по объему. А вы еще бах и умножаете все это на 2, бог знает для чего. Ресурсы вам будут выделять в рамках, а не сколько влезет, и эти ресурсы надо экономить.
Это вам понятно? А если так - немедленно прочесть о том, что я сказал. Прочесть и запомнить, а попутно узнать, что кроме этой функции существую еще две, одна из которых как раз вам и нужна. Либо используйте нынешнюю, но грамотно.

>а в $xtpl->assign('DATA', ]); это не подставляется.

Что не подставляется, и что вам вообще надо передать в шаблон? Весть массив или отдельные его элементы?

  Ответить  
 
 автор: OLi   (06.05.2012 в 20:42)   письмо автору
 
   для: confirm   (06.05.2012 в 20:37)
 

Почему мусор? - Вы имеете ввиду сформировать массив иначе?
Видимо я не догоняю, просто в foreach делая echo $key['name'] происходит вывод, а в
$xtpl->assign('DATA', ]); это не подставляется.

  Ответить  

Сообщения:  [1-10]   [11-17] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования