Php smarty仅显示foreach中的第一个字符

Php smarty仅显示foreach中的第一个字符,php,mysql,smarty,whmcs,Php,Mysql,Smarty,Whmcs,我刚刚开始使用Smarty模板,有一个非常简单的查询: $result = mysql_query("SELECT `name`, `min_price` FROM `tblproductgroups` WHERE `hidden` != 'on' ORDER BY `order` ASC"); $data = mysql_fetch_array($result); $ca->assign('products', $data); tempate文件如下所示: {fore

我刚刚开始使用Smarty模板,有一个非常简单的查询:

   $result = mysql_query("SELECT `name`, `min_price` FROM `tblproductgroups` WHERE `hidden` != 'on' ORDER BY `order` ASC");
   $data = mysql_fetch_array($result);
   $ca->assign('products', $data);
tempate文件如下所示:

{foreach from=$products key=key item=product}

{$product.name} - {$product.id}<br/>

{/foreach}
V - V
V - V
6 - 6
6 - 6
V是VPS(名称)的第一个字符,6是price的第一个字符。
如何使Smarty显示完整信息?

mysql\u fetch\u array
将只获取第一个元素。您需要执行类似于while($row=mysql\u fetch\u array($result)){…}的操作,因此我应该在while()循环中分配'products'变量?好的,通过更改PHP while($data=mysql\u fetch\u array($result))$assign[]=$data修复了这一问题$ca->assign('products',$assign);谢谢你的提示@Amal Murali不客气。不过,你不需要两个循环来完成这个简单的任务。对不起,但是一个循环怎么可能完成这个任务呢?