Как получить имена столбцов из результата fetchAll PDO?

avatar
Malca
19 ноября 2019 в 08:40
300
1
1

Я создаю код для отображения из таблицы

$sql = "SELECT * FROM table"; 
$stmt = $dbcon->prepare($sql); 
$stmt->execute();
$result = $stmt->fetchAll();

для отображения результата я использую следующую оду:

<?php foreach($result as $readrow){ ?>
<div class="table-row">
<td><?php echo $readrow['id'];?></td>
<td><?php echo $readrow['area'];?></td>
<td><?php echo $readrow['color'];?></td>
<?php } ?>

Есть ли способ вывести таблицу вместе с заголовком?

Источник
Carl Binalla
19 ноября 2019 в 08:44
0

Что вы имеете в виду под заголовком? Каким будет название заголовка выбранной таблицы?

Malca
19 ноября 2019 в 08:46
0

Да, заголовок для выбранной таблицы. Код, который я показываю, является заголовком для таблицы «Страна».

Ответы (1)

avatar
Your Common Sense
19 ноября 2019 в 08:46
2

Есть много повторяющихся вопросов, но все ответы не имеют под собой никакой причины, предлагая сложные решения, включающие выполнение дополнительных запросов и т. д.

Хотя решение здесь: при использовании fetchAll() у вас уже есть все заголовки столбцов в переменной $result

$headerNames = $result ? array_keys($result[0]) : [];

теперь вы можете использовать foreach по $coulmnNames для получения заголовка таблицы и foreach по $result для отображения результатов.

<table class='table'>
  <tr>
  <?php foreach($coulmnNames as $name): ?>
    <th><?= $name ?></th>
  <?php endforeach ?>
  </tr>
  <?php foreach($result as $row){ ?>
    <tr class="table-row">
      <?php foreach($result as $value){ ?>
        <td><?= $value ?></td>
    </tr>
  <?php endforeach ?>
</table>