开发者社区> 问答> 正文

smarty中循环打印数据库提取的内容,求助。

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

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

我反思了一下,出现这些问题的原因就是 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 中没有输出传过去的数据,所以我想是不是我的提取并传递数据库数据的方法有问题,因为不能深入理解,所以需要大家的帮忙了。我是一个新人,希望大家帮助我时能讲的详细一些,让我能理解内涵,做到知其然并知其所以然。

展开
收起
落地花开啦 2016-06-14 13:16:47 2333 0
1 条回答
写回答
取消 提交回答
  • 喜欢技术,喜欢努力的人

    修改一下

    $result = mysql_query("SELECT * FROM article");
    while($row = mysql_fetch_array($result)){
    $article = array('id' = $row[id], 'title' = $row[title]);
    }
    2019-07-17 19:37:17
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
2022 DTCC-阿里云一站式数据库上云最佳实践 立即下载
云时代的数据库技术趋势 立即下载
超大型金融机构国产数据库全面迁移成功实践 立即下载