Как все говорили, вам следует преобразовать горизонтальный массив в вертикальный.
Конечно, это должна быть универсальная функция для преобразования любого результата запроса, в отличие от жесткого кодирования заголовков строк. Идея состоит в том, чтобы получить ключи массива каждой строки и использовать их в качестве ключей для нового массива, а затем добавить каждое соответствующее значение в новый элемент массива.
Вот как это делается в mysqli:
<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = mysqli_connect('127.0.0.1','root','','test');
$mysqli->query("set names 'UTF8'");
$data = [];
$res = $mysqli->query("SELECT Name, Age, Height FROM student order by Name desc");
while ($row = $res->fetch_assoc()) {
foreach(array_keys($row) as $key) {
$data[$key][] = $row[$key];
}
}
, а затем вы получаете массив с желаемой структурой, который вы можете вывести, используя код из ответа ROOT:
<table border="1">
<?php foreach($data as $key => $val): ?>
<tr>
<td><?= $key ?></td>
<?php foreach($val as $field): ?>
<td><?= $field ?></td>
<?php endforeach ?>
</tr>
<?php endforeach ?>
</table>