因此,我继承了一个表,该表保存从webform收集的数据,但将所有响应堆叠到一个列中,如下所示-行比这多很多,但这是一个示例,
U_ID Q_ID textResponse
1 1 jon
1 2 toomey
1 3 some@email.com
1 4 NULL
1 5 NULL
2 1 bob
2 2 smith
2 3 another@email.com
2 4 NULL
2 5 NULL
3 1 jim
3 2 kirk
3 3 captains@log.com
3 4 NULL
3 5 NULL
我需要将每个人的所有响应分隔成行,并忽略空条目。
我想让它看起来像这样,
Name Surname Email
jon toomey some@email.com
bob smith another@email.com
jim kirk captains@log.com
我一直在尝试的sql是这样的,
$sql = "
SELECT
CASE
WHEN q_id = 1 THEN textResponse
END AS Name
FROM Responses
UNION
SELECT
CASE
WHEN q_id = 2 THEN textResponse
END AS Surname
FROM Responses
UNION
SELECT
CASE
WHEN q_id = 3 THEN textResponse
END AS Email
FROM Responses
";
我写的php是这样的,
<?php while ($rows = $result->fetch_assoc()){ ?>
<tr>
<?php
foreach ($rows as $row)
echo "<td>" . $row . "</td>";
?>
</tr>
<?php
}
?>
但它只是把所有的东西都放在一行,而不是三列
mysql 5.7.18 php 5.3.3版
有什么想法吗?
干杯乔恩
1条答案
按热度按时间webghufk1#
在php代码中这样做会容易得多:
先把一切都搞定
然后在你的时间里做这样的事情
最后,将其 Package 在适当的表标记中并发回: