在PHP文件中,我正在运行一个循环,在其中我正在为smarty分配一个变量。
PHP代码:
foreach($pindata as $Idx => $Val)
{
$pinId = $Val['id'];
$sql = mysql_query("select count(userID) as users from pinrest_supporters where pin_id = $pinId;");
$contributorsSql = mysql_fetch_assoc($sql);
$contributors = $contributorsSql['users'];
$smarty->assign("contributors$pinId", $contributors);
}
因此,smarty中指定的值为contributors1038
,contributors1039
等等。
现在我的问题是我想动态地在smarty中使用这些分配的变量。
在smarty模板文件中,如果我写{$contributors1038}
,那么我得到正确的输出为9.但我想动态地使用它。 1038是ID,我在我的模板中有。如果我尝试连接两个不同的变量并期望结果,我就失败了:P
我试过了:
{assign var='contri' value="contributors"|cat:$results[res].id}
但上面的变量{$contri}
给出的结果为 contributors1038
我想通过连接两个不同的变量来创建一个新变量,但这会使它成为字符串。那么有人可以帮助我吗?
答案 0 :(得分:0)
如果你唯一的目标是输出数据,你可以这样试试
{$contributors}{$results[res].id}
答案 1 :(得分:0)
好的,我已经筋疲力尽地尝试了不同的解决方案,所以最后我这样做是为了实现我的目标。
而不是代码 PHP
$contributors = $contributorsSql['users'];
$smarty->assign("contributors$pinId", $contributors);
我把smarty变量变成了一个数组
PHP
$contributors[$pinId] = $contributorsSql['users'];
$smarty->assign("contributors", $contributors);
而且我很聪明地称之为
SMARTY:
{$contributed[$results[res].id]}