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

HTML+CSS+JavaScript

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

 

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

вид форума:
Линейный форум Структурный форум

тема: Вопрос для специалистов по Smarty
 
 автор: Лена   (03.09.2008 в 14:09)   письмо автору
 
 

Два файла подключаются к основному шаблону при помощи вот такого обработчика:

<?php
require ('smarty/Smarty.class.php');
$smarty = new Smarty
//соединение с базой
include("configs/dbopen.php");

//подключаемые файлы
include("moduls/ad.php");
include(
"moduls/quest.php");

$smarty->display("table.tpl");
?>


Вывод - через шаблон table.tpl:

<table border = 3>
<tr>
        <td>{include file = "qu.tpl"}
        </td>
        <td>{include file = "ad.tpl"}
        </td>
</tr>
</table>


При этом qu.tpl:

{foreach from=$quest item=one}
<p><A HREF='?quest={$one.id}'>{$one.main_text}</A></p><br />
{/foreach}


ad.tpl:
{foreach from=$arr item=row}
<p><A HREF='?id={$row.id}'>{$row.main_text}</A></p><br />
{/foreach}


И их обработчики:
qest.php

<?php
$smarty 
= new Smarty
include(
"configs/dbopen.php");

$sql "SELECT * FROM `texts` WHERE `id_mod` = 13 ORDER BY `id` DESC";

$result mysql_query($sql$link);
$quest = array();
     while (
$row mysql_fetch_assoc($result))
     {
     
$quest[] = $row
     
$id $row['id'];
     
$n $row['main_text'];
     
$n strtok($n'.');
     
//print_r($row);
     
}
$smarty->assign('quest'$quest);
$smarty->fetch("qu.tpl");
?>


И похожий на него ad.php

<?php
$smarty 
= new Smarty
include(
"configs/dbopen.php");

$sql "SELECT * FROM `texts` WHERE `id_mod` = 11 ORDER BY `id` DESC LIMIT 4";

$result mysql_query($sql$link);
$list = array();
     while (
$row mysql_fetch_assoc($result))
     {
     
$list[] = $row
     
$id $row['id'];
     
$name $row['main_text'];
     
$name strtok($name'.');
     
//print_r($row);
     
}
$smarty->assign('arr'$list);
$smarty->fetch("ad.tpl");
?>


По отдельности шаблоны выводятся нормально. Но если соединить их в одну таблицу, выводится только один из них. Убиваем тот, что выводится, и начинает выводиться второй. Почему так происходит, если в самих шаблонах ошибок - нет?

  Ответить  
 
 автор: Balamut182   (03.09.2008 в 14:18)   письмо автору
 
   для: Лена   (03.09.2008 в 14:09)
 

попробуйте в обработчиках поменять include("configs/dbopen.php"); на include_once("configs/dbopen.php");

  Ответить  
 
 автор: sim5   (03.09.2008 в 14:56)   письмо автору
 
   для: Лена   (03.09.2008 в 14:09)
 

$smarty->fetch("qu.tpl"); и $smarty->fetch("ad.tpl"); делать не надо, переменные переданы этим шаблонам как: $smarty->assign('quest', $quest);, $smarty->assign('arr', $list);. Перехватывать шаблон в переменную в этом случае смысла нет.

  Ответить  
Rambler's Top100
вверх

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