有时候在作模板的时候,有可能需要直接在hbcms模板里读取数据库的内容,怎么作呢? 请看下面的范例:
<{php}>
$mdb = mdbConnection();
$sql = "SELECT * FROM hbcms_article_base WHERE type_id=6 ORDER BY write_date LIMIT 0,10";
$my_data = $mdb->queryAll($sql);
foreach ($my_data as $k => $v) {
$my_data[$k]['url'] = getHtmlFilename('article_detail', $my_data[$k]['id']);
}
$this->assign('my_data', $my_data);
<{/php}>
上面的代码是程序代码,用途是读取数据库的内容,并赋值给模板变量my_data,下面的代码就是纯模板代码了,用途是把内容显示出来
<table>
<{foreach name=my_data item=item_info from=$my_data}>
<{if $smarty.foreach.my_data.iteration <= 6}>
<TR height=22>
<TD><{$smarty.foreach.my_data.iteration}>. <A HREF="<{$item_info.url}>"><{$item_info.title|cn_truncate:18:"...":true}></A></TD>
<TD align=right><{$item_info.write_date|date_format:"%m-%d"}></TD>
</TR>
<{/if}>
<{/foreach}>
</table>
模板的循环代码中可以使用的变量是和数据库表的字段一一对应的,详细的数据库表字段请看后台的,系统配置管理,数据库变量,找到对应的表即可。
仿照上面的范例,您可以在模板的任何位置直接从数据库读取需要的内容了。
$sql = "SELECT * FROM hbcms_article_base WHERE type_id=6 ORDER BY write_date DESC LIMIT 0,10";
这是sql语句,需要对sql数据库语言略有知识的人才能理解,上面的sql大致解释如下:
读取表hbcms_article_base的内容
条件是分类ID=6
排序是按照write_date字段,倒序排列,大的在前
LIMIT 0,10 是调用数量10条