Php 在smarty中实现代码

Php 在smarty中实现代码,php,smarty,Php,Smarty,我不熟悉框架。我用php编写了一个简单的脚本。现在我不知道如何在smarty.tpl文件中实现这段代码 // Yesterday $hour = 12; $today = strtotime("$hour:00:00"); $yd = strtotime("-1 day", $today); $yesterday = date('d/m/y', $yd); $query = "SELECT date, amount FROM yesterday_deposit"; $fetch_query =

我不熟悉框架。我用php编写了一个简单的脚本。现在我不知道如何在smarty.tpl文件中实现这段代码

// Yesterday
$hour = 12;
$today = strtotime("$hour:00:00");
$yd = strtotime("-1 day", $today);
$yesterday = date('d/m/y', $yd);

$query = "SELECT date, amount FROM yesterday_deposit";
$fetch_query = mysql_query($query);

$total_amount = 0;

while($row = mysql_fetch_array($fetch_query)){
    $day = $row['date'];

    if(($dt = date('d/m/y', $day)) === $yesterday){
        $total_amount += $row['amount'];
    }
}

echo $total_amount;

Smarty是一个模板引擎,用于分离显示数据和其他操作

在这种情况下,您应该做的是:

// Yesterday
$hour = 12;
$today = strtotime("$hour:00:00");
$yd = strtotime("-1 day", $today);
$yesterday = date('d/m/y', $yd);

$query = "SELECT date, amount FROM yesterday_deposit";
$fetch_query = mysql_query($query);

$total_amount = 0;

while($row = mysql_fetch_array($fetch_query)){
    $day = $row['date'];

    if(($dt = date('d/m/y', $day)) === $yesterday){
        $total_amount += $row['amount'];
    }
}

$smarty->assign('total_amount', $total_amount);
在Smarty模板文件中,您应该执行以下简单操作:

{$total_amount}
这就是它的工作方式。您可以进行任何计算,从纯PHP文件中的数据库获取数据,并在模板文件中显示数据(例如在Smarty中)


在上面的示例中,我假设您已经创建了Smarty对象,变量名为
$Smarty
,并且您在代码中的其他地方显示了模板文件。

阅读文档:确切的代码在Smarty中不起作用。Smarty的目的是将模板与应用程序代码分开。@deceze我知道这个确切的代码不起作用。这就是为什么我问我能做什么?基本上,这些都不会在Smarty内部运行。您可以按照PHP代码的方式执行所有这些操作,然后将
$total\u amount
传递给Smarty模板并在那里输出。Smarty只关心输出/显示,您不需要在Smarty模板中进行任何计算。顺便说一句,所有这些计算都可以而且应该在一个SQL查询中完成,而不是将整个表提取到PHP代码中并在那里进行<代码>选择“昨天的金额”\u存款日期=$Dayed。我还没有创建任何smarty对象。我所做的就是把你们给我的代码写在上面,并保存在plugins文件夹中。保存后,我在.tpl文件中调用了它。它不是一个插件,它是PHP代码,所以你应该简单地把它放到普通的PHP文件中,然后在
$smarty->assign('total_amount',$total_amount)之前创建Smarty对象,并在该行之后显示模板文件。如何以及在何处创建Smarty对象?我应该把这个文件保存在哪里?我可以将此文件保存在与template相同的文件夹中或其他地方吗?抱歉,您似乎对Smarty一无所知。您是否已安装并启动演示文件?如果是,请在显示模板文件之前输入此PHP代码,并将
{$total\u amount}
放入您显示的文件中。没关系,您是对的,我对smarty一无所知。当我把这段代码放在.tpl文件的顶部时,当我调用它时。它给出了错误。我甚至不能制造物体。