如果您使用mysql_fetch_row
,它会按照它所说的那样做 - 它获取一行,但不超过一个。我的猜测是你的结果集看起来像这样(如果我弄错了,请在你的问题中澄清):
id | name
----+------------
1 | a
2 | b
解决此问题的一种方法是构建一个数组,然后您可以使用 Smarty 将其拆开,如下所示:
/* PHP code */
$your_array = array();
$sel=mysql_query("select id, name from form");
while($row=mysql_fetch_array($sel)) {
$your_array[] = $row;
}
$smarty->assign('contact', $your_array);
$smarty->display('testfunction.tpl');
您现在在 Smarty 中有一个数组,基本上如下所示:
[1] => (
[0] => 1,
[1] => a
),
[2] => (
[0] => 2,
[1] => b
)
这可以像您描述的那样显示:
{* Smarty Code *}
<ul>
{foreach from=$contact item=foo}
<li>{$foo[0]}: {$foo[1]}</li>
{/foreach}
</ul>
我没有尝试过,但它应该可以完成这项工作。如果不正确,{debug}
请在模板中使用 a 来查看数组$contact
是如何形成的。
另一个忠告:
您在此处使用的 PHP mysql 连接器已弃用。强烈建议不要使用此扩展程序。相反,应该使用MySQLi或PDO_MySQL扩展。