我正在尝试在我的smarty模板文件中使用MySQL查询来显示联盟会员付款的待处理总额。我相信下面发布的代码是“正确的”,但我只是错过了它的一部分...
{php}
$result = select_query("tblaffiliatespending", "SUM(tblaffiliatespending.amount)", array("affiliateid" => $id), "clearingdate", "DESC", "", "tblaffiliatesaccounts ON tblaffiliatesaccounts.id=tblaffiliatespending.affaccid INNER JOIN tblhosting ON tblhosting.id=tblaffiliatesaccounts.relid INNER JOIN tblproducts ON tblproducts.id=tblhosting.packageid INNER JOIN tblclients ON tblclients.id=tblhosting.userid");
$data = mysql_fetch_array($result);
$pendingcommissions = $data[pendingcommissions];
$this->assign("pendingamount", $pendingcommissions);
{/php}
然后我在下方显示该页面上的变量:
{$pendingamount}
每当我加载页面时,它只显示一个空白点,数字应该是......
答案 0 :(得分:1)
这是一种使用smarty的奇怪方法。你不能使用$ this(它指的是模板外面的smarty对象)来赋值。一般来说,调用smarty的php应该通过smarty对象将值分配给smarty模板。不要将应用程序逻辑放在smarty模板中。 http://www.smarty.net/docs/en/language.function.assign.tpl
你可以在smarty中分配简单的变量。但上述情况仍然适用。答案 1 :(得分:0)
您应该切换到mysqli或PDO,因为从PHP 5.5开始不推荐使用mysql。 Choosing an API
我认为select_query是你自己编写的函数,我假设你传递了正确的参数。
$pendingcommissions = $data[pendingcommissions];
会给你一个错误。它应该是$pendingcommissions = $data['pendingcommissions'];
。
如果在尝试之后没有得到结果,请添加一些调试输出以检查您正在使用的变量。