我有一个名为testfun.php
的php文件。哪个是从数据库获取值
<?php
$conn=mysql_connect("localhost","root","") or die("unabke to connect");
$db=mysql_select_db("smartyform",$conn) or die("databse error");
require 'Smarty/libs/Smarty.class.php';
$smarty = new Smarty;
$sel=mysql_query("select * from form");
while($row=mysql_fetch_array($sel))
{
$id=$row[0];
$name=$row[1];
}
$smarty->assign('id',$id);
$smarty->assign('name',$name);
$smarty->display('testfunction.tpl');
?>
我有一个名为testfunction.tpl
的tpl文件。我在这个文件中得到输出
<body>
<ul>
{$id}
:
{$name}
</ul>
</body>
</html>
当我运行testfun.php
时,我得到了这个输出:
16 : dg
但我希望输出如下:
1:d
d:g
我该怎么办?
答案 0 :(得分:1)
将数据存储在数组中。所以你必须在你的tpl中做一个for循环。
在你的tpl中会是这样的:
<ul>
{foreach from=$your_data item=item_value key=key}
<li> { $key } : {$item_value}</li>
{/foreach}
</ul>
在你的php中这样做:
require 'Smarty/libs/Smarty.class.php';
$smarty = new Smarty;
$your_row= array();
$sel=mysql_query("select * from form");
while($row=mysql_fetch_array($sel))
{
$your_row[]= $row;
}
$smarty->assign('your_data',$your_row);
$smarty->display('testfunction.tpl');
?>
查看此页面以获取更多详细信息: http://www.smarty.net/docsv2/en/language.function.foreach
希望能帮到你。