【发布时间】:2015-04-06 08:11:29
【问题描述】:
在 smarty 中使用 foreach 遇到一些问题。
php
$rows4 = array();
$result4 = mysql_query("SELECT * FROM stats_follow ORDER BY id DESC LIMIT 5");
while($row4 = mysql_fetch_assoc($result4)) {
$rows4[] = $row4;
}
$rows45 = array();
$result45 = mysql_query("SELECT * FROM stats_follow ORDER BY id DESC LIMIT 5 OFFSET 1");
while($row45 = mysql_fetch_assoc($result45)) {
$rows45[] = $row45;
}
/** assign variable */
$smarty->assign('rows4', $rows4);
$smarty->assign('rows45', $rows45);
tpl
{foreach $rows4 as $row4}
<tr>
<td><center>{$row4.datum|truncate:10:""}</center></td>
<td><center>{$row4.count|truncate:10:""} {$row45.count}</center></td>
</tr>
{/foreach}
但是我现在如何在这个 foreach 中分配第二个查询,这不起作用:
{foreach $rows4 as $row4 || $rows45 as $row45}
<tr>
<td><center>{$row4.datum|truncate:10:""}</center></td>
<td><center>{$row4.count|truncate:10:""} {$row45.count}</center></td>
</tr>
{/foreach}
【问题讨论】:
-
为什么要同时对两个数组使用foreach循环?你想得到什么结果?
-
我需要这两个结果并希望在同一个 foreach 的 tpl 中显示它们,也许更好的解决方案?谢谢
-
请提及您尝试做的事情,您的两个查询看起来都一样,因此您可以只提取前 6 个结果并按照您想要的方式操作它们,而不是运行 2 个不同的查询。顺便说一句,没有使用 mysql_* 函数的原因
-
是的,我可以在一个查询中获得 6 个结果,但是如何处理第 6 个结果不显示?我只想在一个 tpl 上显示这一天,就像您在 tpl 示例(foreach)中看到的那样。谢谢
-
我看不懂你的代码,不明白你想做什么,提供查询给出的列表和你想要的显示方式。