Dima
Новичок
Дата регистрации:
09.02.2013 02:25:26
Сообщений: 8
Михаил,вот как я пробую вывести цикл по вашему шаблонизатору
В пхп делаю так:
$template = new Template("template/"
$header = array(
$url = '/'.$categoryUrl.'/'.$myrow['url'],
$title = $myrow['title'],
$img = $myrow['img'],
$content = cutStr($str, 100),
);
$template->set("header", $header);
$template->display("header"
А в tpl так:
<?php foreach ($this->header as $header) => $name) { ?>
<li><div class="top-str-img"><a href="<?=$url?>">
<img src="/preview/<?=$img?>" width="96" height="50" title="<?=$title?>" alt="<?=$title?>"></a></div>
<div class="top-text"><a href="<?=$url?>" title="<?=$title?>"><?=$content?></a></div></li>
<?php } ?>
Немогли бы вы объяснить как вывести этот цикл? По такому методу данные не выводятся.В пхп изменял массив по разному,и как у вас,и по другому,и не в какую.
В tpl пробовал еще так $this->$title,но всеравно не работает.
Admin
Администратор
Дата регистрации:
27.05.2010 21:23:42
Сообщений: 3063
<?php foreach ($this->header as $header) => $name) { ?> - здесь скобка лишняя.
Dima
Новичок
Дата регистрации:
09.02.2013 02:25:26
Сообщений: 8
Это я сюда случайно с ошибкой вставил
А вообще делаю так
?php foreach ($this->header as $header => $name) { ?>
Просто пробывал делать так
<?php foreach ($this->header as $header(array('url','title','content','img')) => $name) { ?>
И когда сюда вставлял, забыл скобку убрать.
И получается все что в tpl выводится нормально,html код который в цикле выводится циклом,но данные не выводятся.
Dima
Новичок
Дата регистрации:
09.02.2013 02:25:26
Сообщений: 8
А может быть проблема с подключением к БД?
У меня щас так
$myrow_select = mysql_query("SELECT данные FROM таблица ",$db);
while( $myrow = mysql_fetch_array( $myrow_select))
Если сделать так
$myrow_select = $DB->mysql_query("SELECT данные FROM таблица ",$db);
while( $myrow = $DB->mysql_fetch_array( $myrow_select))
Или нет разницы?А то я уже незнаю в какую сторону смотреть.
Admin
Администратор
Дата регистрации:
27.05.2010 21:23:42
Сообщений: 3063
Поэтому я и давал ссылку на http://myrusakov.ru/php-finderror.html - убедитесь для начала, что из базы данные вообще приходят.
Dima
Новичок
Дата регистрации:
09.02.2013 02:25:26
Сообщений: 8
Если б дело в этом было,я б такие вопросы не задавал.Данные приходят,они не приходят если я использую щаблонизатор.
Поэтому я и спрашивал про переменные в цикле foreach.Какой то этот цикл вообще странный и не понятный.
Если используются в цикле эти переменные $header=>$name.
То если к примеру вместо <?=$img?> поставить <?=$name?> то изображение отобразится,но только одно вместо четырех,как дожно быть по циклу.
просто я не пойму если в цикле переменные $header=>$name.
То откуда появится переменная <?=$title?>,<?=$url?>
Хотя по сути они содержаться в массиве $header. но тем не мение ничего не выводится.Ошибок в переменных или синтаксических быть не может.
Про БД я имелл ввиду что может нужно так $myrow_select = $DB->mysql_query
А не так $myrow_select = mysql_query
Admin
Администратор
Дата регистрации:
27.05.2010 21:23:42
Сообщений: 3063
В массиве $header всего 4 элемента, которые можно перебрать через обычный for. А обращаться к массиву нужно по индексу.
Dima
Новичок
Дата регистрации:
09.02.2013 02:25:26
Сообщений: 8
Через for тоже не работает. А без цикла работает все нормально.
Обращался я и по индексу и по всякому....
О прогресс,вывелись данные.Но они повторяются.
Т.е. выводится 4 блока в цикле,и все данные в них одни и теже.Вот бы еще сделать чтоб они выводились правильно.
Admin
Администратор
Дата регистрации:
27.05.2010 21:23:42
Сообщений: 3063
Сделайте print_r($header) и посмотрите, сколько там элементов и какие они.
Dima
Новичок
Дата регистрации:
09.02.2013 02:25:26
Сообщений: 8
Делал через print_r.
Выводит одни и теже данные.
Если в массиве Вася, Петя, Саша, Маша.
То выводит 4 раза Вася.Как массив не перекручивай,ничего не помогает