Smarty:使用 smarty 数组变量填充 html table 列

Smarty: Populate html table columns with smarty array variable

我有以下 PHP 代码:

$Query1 = "Select ReportId,MailingFrequency from reports_scheduler WHERE UserId='$UserId'";
    $result1 = db::sql($Query1);
    $X = array();
    while($x = mysql_fetch_assoc($result1)) {
        $this->smarty->assign("X",$x['ReportId']);// This gives '1'
        $this->smarty->assign("X",$x['MailingFrequency']);//This gives 'Saturday'
    }

我的HTML代码:

{html_table loop=$X}
      <table id="resulttable" border="1">
      <tr> 
          <td>$X[0]</td>
          <td>$X[1]</td>
      </tr>
  </table>
当我 运行 我的代码时,不显示值“1”和 'Saturday',只显示 'Saturday'。请帮忙。

你覆盖了 smarty $X 变量,而不是创建数组。在第 6 行,您将 $X 设置为 1,在第 7 行,您将 $X 设置为 'Saturday'。先前的值被覆盖。

首先创建新数组,然后将其放入 Smarty 模板。

$X = array();

while($x = mysql_fetch_assoc($result1)) {
    $X[0] = $x['ReportId'];
    $X[1] = $x['MailingFrequency'];

    $this->smarty->assign("X", $X);
}

当你只有1行来自DB时,你不需要使用while循环,直接访问结果,例如:

$x = mysql_fetch_assoc($result1); // instead of line with while()