我有一个表,其中包含一些数据,我需要显示到列表中,但一些数据(或项目)需要隐藏,然后分组为唯一元素,而不是显示每个数据
这是打印收据,我需要出示用于修理汽车或自行车的元素或 Material list 。
这是我现在的代码,我的客户昨天告诉我有关分组项目的信息,现在我需要更改它,但我对如何做到这一点有疑问......也许可以进行两个 SELECT?
//mantenimiento is the row that have the 1 or 0
$sql = $conn->prepare("SELECT nombre, vendido, ventaUnitaria, descuento, referenciaVenta, mantenimiento
FROM COMPRA WHERE id = :id");
$id = filter_input(INPUT_GET, 'id', FILTER_SANITIZE_STRING);
$sql->bindParam(':id', $id, PDO::PARAM_STR);
$sql->execute();
while($row = $sql->fetch(PDO::FETCH_ASSOC)) {
根据示例,表中有这些项目(如现在所示):
链条固定 --- 100 美元
干净 --- 12 美元 *
洗车 --- 35 美元 *
过滤器 --- 10 美元 *
油脂 --- 7 美元 *
但在列表中只需要显示这些:
链条固定 --- 100 美元
预防性维护 --- 64 美元
在表中这些项目有一个额外的行,数字为 1,其他项目有 0
最佳答案
听起来您想显示一些详细项目,但然后总结其他项目并将它们呈现为单个项目。您可以通过执行两个单独的 SELECT 查询的 UNION 来显示两种类型的结果。例如:
SELECT description, price from the_table
WHERE id = ? and description = 'list-individual-charge-condition'
UNION
SELECT 'Preventive Maintenance' as description, sum(price) as price from the_table
WHERE id = ? and description = 'aggregate-charge-condition'
;
当然,您需要选择适合您情况的列,并指定两个 WHERE 子句,这两个子句将确定哪些费用将单独列出以及哪些费用将汇总为预防性维护。
关于php - 如何在一个查询中显示正常和分组项的列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57236414/