当前位置: 首页 > 面试题库 >

PHP和MYSQL:对类别使用分组依据

羊舌赞
2023-03-14
问题内容

我的数据库具有以下设置

productid | productname | category id

我想像这样输出它们:

category #1
item 1 
item 2
item 3

category #2
item 1 
item 2
item 3

我按组使用它们,但效果很好,但是我想遍历每个组并显示该组的内容。我该怎么做?


问题答案:

我建议只使用一个简单的查询来获取所有行,并按类别ID进行排序。仅当类别的值与上一行不同时才输出类别。

<?php

$stmt = $pdo-> query("SELECT * FROM `myTable` ORDER BY categoryID");

$current_cat = null;
while ($row = $stmt->fetch()) {
  if ($row["categoryID"] != $current_cat) {
    $current_cat = $row["categoryID"];
    echo "Category #{$current_cat}\n";
  }
  echo $row["productName"] . "\n";
}

?>


 类似资料:
  • 问题内容: 我希望能够从电子邮件表中选择一堆行并按发件人分组。我的查询如下所示: 该查询几乎可以按我希望的方式工作-它选择按电子邮件分组的记录。问题在于主题和时间戳记与特定电子邮件地址的最新记录不符。 例如,它可能返回: 当数据库中的记录是: 如果“编程问题”主题是最新的,那么在对电子邮件进行分组时如何使MySQL选择该记录? 问题答案: 一个简单的解决方案是将查询包裹与ORDER语句子选择 第一

  • 问题内容: 只是对SQL语法感到好奇。所以如果我有 这将是不正确的,因为 真的应该是 但是为什么我们不能仅仅为了方便而使用前者呢? 问题答案: 就像按以下顺序执行查询一样实现SQL: FROM子句 WHERE子句 GROUP BY子句 HAVING子句 SELECT子句 ORDER BY子句 对于大多数关系数据库系统,此顺序说明了哪些名称(列或别名)有效,因为它们必须在上一步中引入。 因此,在Or

  • 问题内容: 我有以下SQL: 输出如下: 我希望能够仅获取一个代码并获得最近的距离。所以我希望它返回这个: 我最初有这样的东西: 如果我不想获得与最小距离相关联的正确位置,则最小值显示效果很好。如何获取最小距离(和距离)以及正确的位置(取决于表格中插入内容的顺序,有时您可能会得到纽约距离,但夏洛特位于“位置”)。 问题答案: 为了获得正确的关联位置,您需要加入一个子选择,该子选择在外部主表中的距离

  • 此实例中的任务是获取数据库中每个作者的最新文章。 示例查询产生不可用的结果,因为它并不总是返回的最新消息。 目前公认的答案是 编辑:这个问题是另一个问题的延续,我的具体情况略有不同。您可以(也应该)假设还有一个wp_posts.id是该特定帖子的唯一标识符。

  • 问题内容: 我正在MySQL 5.5中成功运行查询 但是,我需要使用DELETE运行相同的查询,但我不确定如何删除?即返回的结果应该删除? 有任何想法吗 ? 问题答案: 将其放在子查询中:

  • 问题内容: 我在为MySQL编写SQL查询时遇到一些问题。我有一个具有以下结构的表: 我想创建一个查询,该查询从表中提取以下信息: 查询结果应如下所示: 当然,每个唯一的“ id”具有更多行。 我已经尝试过一些查询,例如 这将返回正确的结果,但是我必须使用“ pass”的其他可能值(最多7个)来扩展它 我尝试在AVG中使用嵌套的SELECT,但这没有用,因为我没有弄清楚如何正确地将其限制为当前的’