0

我有一个名为 .php 的 php 文件testfun.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');
    ?>

我有一个名为 .tpl 的文件testfunction.tpl。我在这个文件中得到输出

<body>

<ul>
{$id}
 :
 {$name}
</ul>

</body>
</html>

当我运行时,testfun.php我得到了这个输出:

16 : dg 

但我想要像这样的输出:

1:d
d:g

我应该怎么办 ?

4

1 回答 1

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

希望对您有所帮助。

于 2012-10-19T05:23:00.570 回答