Да , запрос все равно будет выполнен, потому что вы сначала загружаете файл PHP.Как только запрос будет выполнен, ваш PHP-файл загрузит шаблон независимо от того, введете ли вы {$news}
или нет, запрос к базе данных будет выполнен.флаг (например):
http://www.domain.com/news.php?show=0
и затем в вашем PHP:
$value = array(); // this way if the variable is not used, you create a empty array.
if(isset($_GET['show']) && $_GET['show'] == 1) {
$sql = 'SELECT * FROM test.`name` ORDER BY 1 DESC LIMIT 0, 5';
$result = mysql_query($sql) or die("Query failed : " . mysql_error());
while ($line = mysql_fetch_assoc($result)) {
$value[] = $line;
}
}
// Assign this array to smarty...
$Smarty->assign('news', $value);
// Display the news page through the news template
$Smarty->display('news.tpl');
и в вашем .tpl:
{section name=loopname loop=$news}
// your news code
{sectionelse}
No news today!
{/section}
{$news}