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

时间:2015-03-27 09:43:23

标签: php html arrays smarty

我有以下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>
&#13;
&#13;
&#13; 当我运行我的代码时,而不是显示值&#39; 1&#39;周六&#39;周六&#39;周六&#39;被展示。请帮忙。

1 个答案:

答案 0 :(得分:1)

您覆盖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);
}

当您只有一行来自数据库时,您不需要使用while循环,直接访问结果,例如:

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