2013-05-30 4 views
2

Im «noob» в smarty. Мне нужно выполнить следующий код в одном из моих .TPL файлов:Запрос базы данных PHP (sql) в smarty tpl

<? // SELECT sql query 
$sql = "SELECT 'id' , 'title' FROM `forum_posts` WHERE bid = '1' ORDER BY 'date' DESC LIMIT 4"; 

// perform the query and store the result 
$result = query($sql); 

// if the $result contains at least one row 
if ($result->num_rows > 0) { 
    // output data of each row from $result 
    while($row = $result->fetch_assoc()) { 
    echo '<tr> 
     <td><a href="http://www.site.com/forum.php?topic='. $row['id']. '">'. $row['title']. '</a> </td> 
     </tr> '; 
    } 
} 
else { 
    echo 'No news'; 
} 
?> 

Я пытался в течение 3-х часов в настоящее время, серфинг по всему Интернету, но без успеха. Помогите пожалуйста!

+3

Почему ваши шаблоны выполняют запросы? –

+3

Вы приближаетесь к этому неправильно. Не выполняйте запрос в файле шаблона. Выполните его в файле PHP, который вызывает шаблон, а затем '$ smarty-> assign()' строки, извлеченные в массив, который используется в шаблоне. –

+0

Я создал файл news.php и включил его в файл tpl: '{include file = 'newsacc.php'}', но я думаю, что это неправильно. У меня нет «умной» идеи. У меня есть этот скрипт, который использует smarty и просто хочет добавить этот виджет. Любые хорошие примеры о том, что вы говорите? Спасибо – Alen

ответ

1

Вы используете кавычки вместо кавычки для имени столбца, просто изменить их, чтобы избежать ошибок

SELECT `id` , `title` FROM `forum_posts` WHERE `bid` = '1' ORDER BY `date` DESC LIMIT 4"; 
0

Требовать ('..//LIBS SmartySQL.class.php');

$ умник = новый SmartySQL (массив ('pdo_dsn' => 'MySQL: имя_бд = db_name; хост = локальный', 'pdo_username' => 'имя пользователя', 'pdo_password' => 'пароль', 'pdo_driver_options' => array()));

$ smarty-> дисплей ('index.tpl');

+0

Вы не должны отвечать только частью кода. Немного объяснения приветствуются. – lrineau

Смежные вопросы