PHP SQL 回显行问题



我试图从表中回显出一个圆顶数据,但由于某种原因,它只回显出两个结果。可能是因为sub_parent下只有两个可能的数字。我希望它能回显所有 6 行,但只是将它们分组?知道出了什么问题吗?

<?php
require_once 'db/db.php';
$sql = "SELECT *
FROM main_menu_sub
GROUP BY sub_parent
ORDER BY id
";
$result = $con->query($sql);
$con->close();
?>
<?php
if ($result->num_rows > 0) {        
while($row = $result->fetch_assoc()) {
?>
<li><a href="<?php echo $row["Sub_menu_url"]; ?>"><?php echo $row["Sub_menu_title"]; ?></li>

<?php
}
}
?>

你想要的是ORDER BY,而不是GROUP BYGROUP BY表示将具有相同值sub_parent的所有行合并为一行。这通常与聚合函数(如MAX()COUNT()等(结合使用,以汇总组中的所有行。

因此,您的查询应该是:

SELECT *
FROM main_menu_sub
ORDER BY sub_parent, id

这会将具有相同sub_parent的所有行放在一起,并在每个组中按id排序。

如果要显示每个sub_parent组的标题,请参阅如何在 PHP 中列出具有相同 id 数据与 while 循环?以获取在sub_parent更改时打印标题的技术。

最新更新