是否可以避免循环查询?
Is it possible to avoid query in loop?
我有这样的代码:
$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>";
}
它从数据库中读取日期并打印包含数据的单独表格。有没有可能在没有循环查询的情况下实现这一点?
您可以按日期而不是分组对结果进行排序。然后,您可以使用一些 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>";
注意: 未测试
我有这样的代码:
$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>";
}
它从数据库中读取日期并打印包含数据的单独表格。有没有可能在没有循环查询的情况下实现这一点?
您可以按日期而不是分组对结果进行排序。然后,您可以使用一些 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>";
注意: 未测试