【问题标题】:PHP multi table header (horizontal and vertical ) based on mysql data基于mysql数据的PHP多表头(横竖)
【发布时间】:2017-04-06 22:44:01
【问题描述】:

在mysql中我有这样的表结构:

id | name |
1  | nice |
2  | bad  |

我想在表格中显示如下:

|    | nice | bad |
--------------------
|nice|      |     |
-------------------
|bad |      |     |
-------------------

我认为在 PHP 中使用 for 循环: 我试过这段代码:

<tr><td>&bspc</td>
while($r = mysql_fetch_array($res){
  echo "<td>".$r['name']."</td></tr>";
  if(end($r)){
   echo "<tr>".$r['name']."<tr>";
} 
}

【问题讨论】:

  • stop using mysql_* functionsThese extensions 已在 PHP 7 中删除。了解PDOMySQLiprepared 语句并考虑使用 PDO,it's really pretty easy
  • 这里没有足够的信息让我们帮助您解决这个问题。您可能会编写一个查询,该查询将返回您期望的结果,而无需使用 PHP 进行操作以进行显示。
  • @JayBlanchard 是的,我同意你的代码只是为了测试逻辑:)
  • 您要查找的是crosstab query
  • @JayBlanchard 交叉表查询很好,但不完全是我想要的,请再看看我的问题 :) #对不起我的英语不好

标签: php mysql html-table


【解决方案1】:

交叉表查询可以满足您的需求:

SELECT `name`,
SUM(if(`name` = 'nice', 1, 0)) AS `nice`,
SUM(if(`name` = 'bad', 1, 0)) AS `bad`
FROM `myTable`
GROUP `name`

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-04
    • 2010-09-16
    • 1970-01-01
    相关资源
    最近更新 更多