php - 显示每种颜色的值

标签 php

我在从数据库打印值时遇到问题。

项目表

ITEM | COLOR | MATERIAL | DIMENSIONS | CATEGORY | QUANTITY
- 01    33      05           111         12         1000.00
- 02    33      07           125         18         200.00
- 03    33      11           156         18         254.00
- 04    56      15           25          66         113.00
- 05    66      05           11          33         521.00

我正在尝试打印表格中的值(针对每种颜色打印 Material 尺寸类别) 所以输出将是:

COLOR - > 33
MATERIAL | DIMENSION | CATEGORY  | QUANTITY
05          111          12          1000.00
07          125          18          200.00
11          156          18          254.00

COLOR - > 56
MATERIAL | DIMENSION | CATEGORY  | QUANTITY
15          25           66          113.00

COLOR - > 66
MATERIAL | DIMENSION | CATEGORY  | QUANTITY
05          11           33          521.00

我正在使用查询

$query = "SELECT a.itemnb, b.colorname, c.materialname, d.categoryname, sum(a.quantity) as quantity 
FROM dbo_items a
JOIN dbo_color b
ON a.color=b.colorid
JOIN dbo_material c
on a.material=c.material
JOIN dbo_category
on a.category=d.categoryid
GROUP BY b.colorname, c.materialname, d.categoryname, ";

我正在使用 PDO。

$q=$conn->query($query);

现在我可以获取表中的所有值,但这并不是我真正想要的。

<table class="table table-bordered table-striped">
  <thead>
    <tr class="bg-primary">
      <td data-field="color">COLOR</td>
      <td data-field="material">MATERIAL</td>
      <td data-field="dim">DIMENSIONS</td>
      <td data-field="quantity">QUANTITY</td>
    </tr>
  </thead>
  <tbody>  
  <?php while ($r = $m->fetch()){?> 
    <tr>
      <td><?=$r['colorname']?></td>
      <td><?=$r['materialname']?></td>
      <td><?=$r['categoryname']?></td>
      <td><?=$r['quantity ']?></td>
   <?php } ?>
  </tbody>
</table>

我想打印第一种颜色,然后打印与该颜色相关的所有 Material 。 我在那里遇到了麻烦,感谢任何帮助或建议?

最佳答案

首先在查询的group by子句中去掉colorname字段,添加该列,order by表示添加order by colorname 在查询中。

然后使用以下内容从 HTML 和 php 代码更改:

<table class="table table-bordered table-striped">
  <thead>
    <tr class="bg-primary">
      <td data-field="color">COLOR</td>
      <td data-field="material">MATERIAL</td>
      <td data-field="dim">DIMENSIONS</td>
      <td data-field="quantity">QUANTITY</td>
    </tr>
  </thead>
  <tbody>  
  <?php 
  $tempColor = '';
  while ($r = $m->fetch()){
  if($tempColor != $r['colorname']) {
   ?>
   <tr><td colspan="4">Color Name: <?=$r['colorname']?></td></tr>
  <?php $tempColor = $r['colorname'];
  } else { 
  ?> 
    <tr>
      <td><?=$r['colorname']?></td>
      <td><?=$r['materialname']?></td>
      <td><?=$r['categoryname']?></td>
      <td><?=$r['quantity ']?></td>
   <?php }
   }
    ?>
  </tbody>
</table>

关于php - 显示每种颜色的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29941668/

相关文章:

javascript - 调用特定函数时加载响应数据失败

php - 如何通过访问修饰符过滤属性

php - 允许将 Woocommerce 中特定产品类别的最多 3 个产品添加到购物车

php - : syntax error near ORDER in PDO 行错误

php 比较日期如果数据库中的日期格式是这样的 (02/02/2014)

php - 如何在php中检查mysql日期是否不为空

javascript - PHP、Javascript、选择和警报

PHP 函数来显示站点周围的部分?

php - 使用复合主键生成自增 ID

javascript - 使用 JS 将变量传递给 PHP