0

在 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的结果

我想通过连接两个不同的变量来创建一个新变量,但这使它成为字符串。那么任何人都可以帮助我吗?

4

2 回答 2

0

如果您的唯一目的是输出数据,您可以尝试这种方式

{$contributors}{$results[res].id}
于 2012-11-03T10:32:02.467 回答
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]}
于 2012-11-03T10:35:49.580 回答