是否可以避免循环查询?
Posted
技术标签:
【中文标题】是否可以避免循环查询?【英文标题】:Is it possible to avoid query in loop? 【发布时间】:2018-02-15 14:56:26 【问题描述】:我有这样的代码:
$q = "SELECT date FROM t1 GROUP BY date";
$pdo->query($q);
$results = $pdo->results();
foreach($results as $result)
echo "<h1>$result['date']</h1>";
echo "<table>";
$q = "SELECT * FROM t1 WHERE date=:date";
$pdo->query($q);
$pdo->bind("date", $result['date']);
$subresults = $pdo->resultset();
foreach($subresults as $sub)
echo "<tr><td>$sub['smth']</td></tr>";
echo "</table>";
它从数据库中读取日期并打印带有数据的单独表格。是否可以在不循环查询的情况下实现这一点?
【问题讨论】:
这非常接近:***.com/questions/28222654/… 还有这个:***.com/questions/39468584/… 【参考方案1】:您可以按日期排序结果,而不是分组。然后,你可以使用一些 if 条件来渲染 h1
和 table
标签:
$q = "SELECT `smth`, `date` FROM `t1` ORDER BY `date`";
$pdo->query($q);
$results = $pdo->results();
$currentDate = '';
foreach($results as $index => $result)
if ($currentDate != $result['date'])
if ($index != 0)
echo "</table>";
echo "<h1>$result['date']</h1>";
echo "<table>";
echo "<tr><td>$result['smth']</td></tr>";
$currentDate = $result['date'];
echo "</table>";
注意:未测试
【讨论】:
以上是关于是否可以避免循环查询?的主要内容,如果未能解决你的问题,请参考以下文章