您好,匿名用户

smarty中循环打印数据库提取的内容

0 投票

我是刚刚接触smarty模版引擎,所以对smarty理解不是很透彻.在用smarty时出现了这样的问题。

在做一个网页,需要用smarty循环打印从数据库提取的内容,遇到了困难。首先是提取数据传递的问题,按书上说的是把从数据库提取的内容放在一个数组中,传递给smarty模版,然后在模版中用section语句循环打印,但是始终没有成功。因为对section的语法不太理解。在循环打印时,如果按语法写$article[line].id就没有输出,我尝试改成$article.id,这样编程循环打印期中某一个id的值很多遍,而不是把数据库中的每一个id值打印出来

还有一个问题是关于在模板中调用子模板问题,{include file = 'header.tpl'}这样写后没有实现引入子模板的效果。在这期中我发现了一个错误,就是我在smarty配置中定义了其他的开始与结束符号,而不是用{},打印时直接打印出了{include file = 'header.tpl'},但是在改过后还是没有成功,虽说{include file = 'header.tpl'}不再出现了,但是header.tpl中的页面的效果没有出现。

最后我反思了一下,出现这些问题的原因就是smarty的理解不够,只知其然而不知其所以然。PHP对我来说其实也是新事物,出现这些问题和对php中对数据库的select也有关。我的php的select返回的结果也不是很清楚,书上只教了怎么把结果用while循环打印,而没有说返回的结果怎么保存。我自己根据

$result = mysql_query("SELECT * FROM article");
while($row = mysql_fetch_array($result)){
echo $row[id];
}

这段代码,尝试把返回的结果放在一个数组中,像这样

$result = mysql_query("SELECT * FROM article");
$row = mysql_fetch_array($result);
$article = array('id' = $row[id], 'title' = $row[title]);

然后把$article传递给smarty。 代码如下:

$smarty->assign('article',$article);
$smarty->display(index.tpl);

但是在index.tpl中没有输出传过去的数据,所以我想是不是我的提取并传递数据库数据的方法有问题,因为不能深入理解,所以需要大家的帮忙了。我是一个新人,希望大家帮助我时能讲的详细一些,让我能理解内涵,做到知其然并知其所以然,谢谢了。

用户头像 提问 2014年 11月17日 @ Ezreal 中士 (1,381 威望)
分享到:

1个回答

0 投票
$result = mysql_query("SELECT * FROM article");
while($row = mysql_fetch_array($result)){
$article = array('id' = $row[id], 'title' = $row[title]);
}
用户头像 回复 2014年 11月17日 @ Poppy 中士 (1,295 威望)
提一个问题:

相关问题

0 投票
1 回复 195 阅读
用户头像 提问 2017年 6月18日 @ Ryze 中士 (1,303 威望)
0 投票
1 回复 125 阅读
用户头像 提问 2012年 12月1日 @ Brand 中士 (1,130 威望)
0 投票
1 回复 15 阅读
用户头像 提问 5月15日 @ Nunu 中士 (1,305 威望)
0 投票
0 回复 51 阅读
用户头像 提问 2017年 5月15日 @ Caitlyn 上士 (1,887 威望)
0 投票
1 回复 41 阅读
用户头像 提问 2016年 2月7日 @ Sivir 中士 (1,290 威望)

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

IT技术交流群 - 随意问
欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...