php - 使用 php mysql 的带有顶部和左侧标题的 HTML 表格

标签 php html mysql

我的数据库中有这个:

(`id`,`cid`,`subheading`,`name`,`percentage`) 

VALUES

(1, 43, 'Big Bang / Evolution Theory',  'Jackie',   '9.7'),
(2, 43, 'Big Bang / Evolution Theory',  'Beth', '2.0'),
(3, 43, 'Creation / Creation Theory',   'Jackie',   '1.5'),
(4, 43, 'Creation / Creation Theory',   'Beth', '8.2'),

我想使用 php mysql 显示一个 html 表,以在左侧输出名称,该名称可能会增长到 100 或更多,而顶部则是副标题,可能会增长到 2 以上,但在这个阶段是 2。

cid 是唯一标识符,因为会有更多表组,但这一个都与 cid = 43 相关。

我已经提供了我想要的屏幕截图。

enter image description here

以下是一些让我困惑的事情。

对于我尝试过的所有查询,无论有多少种变化,我似乎都无法理解循环的逻辑。

<table class="table">
    <tbody>
    <tr>
        <th scope="col">Name</th>
        <?php SELECT subheading FROM ... WHERE cid=43 GROUP BY subheading
        foreach (headings as subheading) { ?>
        <th scope="col">echo subheading/th>
        <?php } ?>
    </tr>   
    <tr>
        <?php SELECT name FROM ... WHERE cid=43
        foreach (names as name) { ?>
        <th scope="row">echo name</th>
        <?php } ?>
        <?php SELECT percentage FROM ... WHERE cid=43
        foreach (percentages as percentage) { ?>
        <td>echo percentage</td>
        <?php } ?>      
    </tr>   
</tbody>
</table>

是否有某种方法可以创建一个查询来管理这一切?不过,我不允许更改表数据的结构。

最佳答案

理想情况下,我会更改表结构,但正如您所说,您不能这样做。每个名称对于每个副标题都有一个值吗?我会假设是,因为这简化了事情。在这种情况下,我会简单地按字母顺序排列所有内容。

我们需要一个查询来按字母顺序获取标题:

SELECT DISTINCT subheading FROM ... WHERE cid=43 ORDER BY subheading

检索这些内容并循环遍历它们以打印标题。

接下来,您需要第二个查询来检索显示数据:

SELECT * FROM ... WHERE cid=43 ORDER BY name, subheading

然后您可以循环这些结果并构建表格。结果将首先按名称排序,因此通过一些简单的变量检查,您可以确定名称何时更改(这意味着您需要开始下一行)。在单个名称中,结果按子标题按字母顺序排序,这样您就可以简单地按顺序显示百分比(同样,这假设名称包含每个子标题的数据)。

如果您需要对所有 cid 值执行此操作,您可以将整个过程包装在一个遍历 cid 值的 for 循环中。

关于php - 使用 php mysql 的带有顶部和左侧标题的 HTML 表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27083714/

上一篇:mysql - 互斥对

下一篇:python sql mysql

相关文章:

javascript - 单击播放后如何加载视频?

php - 使用 PHP 锁定 MYSQL 表

php - 无法验证用户散列密码 - mysql 和 php

javascript - 使用ajax将数据从javascript发布到php文件不起作用

html - 有没有办法指定图像的最大高度或宽度?

javascript - 在 FullCalendar.js 中添加 Customcell

php - 以 3 列显示动态表数据

mysql - 在Mysql中查找存储在一个字符串中的多个id

php - 上传文件后未获取正确的路径

javascript - 如何使用 javascript 更改标题值?