Итак, я унаследовал таблицу, которая содержит данные, собранные из веб-формы, но объединяет все ответы в один столбец, как показано ниже - строк намного больше, чем этот, но это пример,
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
Есть идеи?
Приветствие
Jon