繁体   English   中英

在Twig模板中显示MySQL查询结果

[英]Display MySQL Query Results in Twig Template

我正在实施我的第一个Twig项目。 我有一个MySQL数据库。 它包括一个表,其中每个记录都是一个文档。 有标题,编号和描述字段。

没有Twig,查询所有结果并将它们输出到表中非常简单。 但是,将查询发送到Twig时遇到了一些困难。 这似乎是一项基本任务,但是我在Twig文档中或四处搜寻都没有找到任何类似的示例。

Twig模板看起来很像Django / Jinja模板,我对此比较熟悉。 我的模板:

{% block Content %}

<table border='1' width=100%>
    {% for i in queryResult %}
    <tr>
        <td> {{i.Title}} </td>
    </tr>
    {% endfor %}
</table>
{% endblock %}

此视图的PHP如下所示:

$connection=mysql_connect (credentials) or die ('Cannot connect to database:' . mysql_error());
    $mydb=mysql_select_db(database);

$sql = query;

$query = mysql_query($sql);

$result = mysql_fetch_assoc($query);

echo $twig -> render('all_reports.html', array('queryResult'=> $result));

这似乎是正确的。 该脚本应执行一个SQL查询,以数组的形式返回结果集,然后将结果发送到模板。 模板应遍历数组中的所有项目(每行一个项目),并将其显示在表中。

实际发生的情况是渲染了三行,所有行均为空白。 我的解释是,模板看到数组中的三个项目(每个字段一个),而不是查询结果中每个记录的一个项目。 它们为空,因为每个字段没有标题字段。 但是我不知道该怎么解决。

在您的PHP中尝试一下:

while ($row = mysql_fetch_assoc($query)) {
    $results[] = $row;
}
echo $twig -> render('all_reports.html', array('queryResult'=> $results));

问题是您要对mysql_fetch_assoc进行1次调用,这将获得第一行(在您的情况下,该行似乎为空)。 构建数组并将其发送到模板中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM