php - PHP SQL表,同一行中具有相同ID的值
问题描述
我有这个 SQL 表,我想将数据显示到 html 表中,如下所示:
我有这个 php 代码:我的问题是如何使具有相同 post_id 的所有值都在同一行中。图片为插图。提前谢谢你的帮助!
<!DOCTYPE html>
<html>
<head>
<title>Booking</title>
<style>
table {
border-collapse: collapse;
width: 100%;
color: #588c7e;
font-family: monospace;
font-size: 25px;
text-align: left;
}
th {
background-color: #588c7e;
color: white;
}
tr:nth-child(even) {background-color: #f2f2f2}
</style>
</head>
<body>
<table>
<tr>
<th>Field14</th>
<th>Field15</th>
<th>Field16</th>
</tr>
<?php
$conn = mysqli_connect("localhost", "admin", "", "test");
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT _field_14, _field_15, _field_16 FROM booking";
$result = $conn->query($sql);
?>
</table>
</body>
</html>
解决方案
这是一个小提琴:http ://sqlfiddle.com/#!9/5f1584/1 (我稍微改变了数据,很懒惰)。
我在这里使用了 haudoing 的答案,并进行了一些调整(主要是 group by)。这似乎是最直接的。https://stackoverflow.com/a/13947385/399696
SELECT
T1.post_id,
T2.meta_value AS _field_14,
T3.meta_value AS _field_15,
T4.meta_value AS _field_16
FROM docs AS T1
LEFT JOIN docs T2 ON T2.post_id=T1.post_id AND T2.metar_key='_field_14'
LEFT JOIN docs T3 ON T3.post_id=T1.post_id AND T3.metar_key='_field_15'
LEFT JOIN docs T4 ON T4.post_id=T1.post_id AND T4.metar_key='_field_16'
GROUP BY post_id
这是结果:
post_id _field_14 _field_15 _field_16
490 IND LHSM 2018-07-07
491 ERK LHKE 2018-07-08
推荐阅读
- autocomplete - Microsoft Edge 地址栏不再自动填充
- rust - 如何为 dyn Trait 对象的 Vec 获取 fmt::Debug 的实现?
- r - 如何使用 plot.zoo 在每个多重图中自定义 y 轴的颜色和比例?
- java - secp256k1 在 Eclipse 中不起作用/不支持?
- python - 为什么 reshape(4,2) 不同于 reshape(2,-1).T 对于 2x2x2 矩阵
- python - 如何从python中的两个二维列表创建元组的二维列表?
- string - 如何在 Rust 中将字符串转换为向量?
- vue.js - 在 vue.js 实例化之前等待 quasar.dev 引导文件中的代码执行
- c++ - 如何仅在某些情况下选择性地发出 QTextTexid::textChanged 信号?
- python - 使用三个标准从 sqlite 表中选择行