Добрый день! Пытаюсь вывести данные из БД в таблицу html. Имеется таблица
Сам код вывода: `
$dsn = "mysql:host=$host;dbname=$db;charset=$charset";
$pdo = new PDO($dsn, $user, $pass);
$data = $pdo->query('SELECT * FROM goods');
?>
<table>
<thead>
<th>ID</th>
<th>title</th>
<th>category</th>
<th>description</th>
<th>price</th>
</thead>
<tbody>
<?php while ($row = $data -> fetch()) { ?>
<tr>
<?php foreach ($row as $col_value) { ?>
<td><?php echo $col_value ?></td>
<?php } ?>
</tr>
<?php } ?>
</tbody>
</table>`
В результате значения почему-то выводятся 2 раза. Кроме того, поскольку с Pdo не очень хорошо знаком, покритикуйте.
Метод fetch() принимает не обязательный параметр, которым вы указываете в каком виде вы хотите получить данные, по дефолту этот параметр указывается как PDO::FETCH_BOTH который возвращает массив, индексированный именами столбцов результирующего набора, а также их номерами (значения дублируются)
Вместо
while ($row = $data -> fetch())
Напишите
while ($row = $data -> fetch(PDO::FETCH_ASSOC))
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники