Вывод содежимого таблицы из БД в таблицу Html

354
31 мая 2017, 07:00

Добрый день! Пытаюсь вывести данные из БД в таблицу 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 не очень хорошо знаком, покритикуйте.

Answer 1

Метод fetch() принимает не обязательный параметр, которым вы указываете в каком виде вы хотите получить данные, по дефолту этот параметр указывается как PDO::FETCH_BOTH который возвращает массив, индексированный именами столбцов результирующего набора, а также их номерами (значения дублируются)

Вместо

while ($row = $data -> fetch())

Напишите

while ($row = $data -> fetch(PDO::FETCH_ASSOC))
READ ALSO
Не могу понять set_exception_handler

Не могу понять set_exception_handler

имеется кусок кода:

319
Как перебрать массив и произвести мат действия над сопадениями?

Как перебрать массив и произвести мат действия над сопадениями?

Добрый день, есть два массива, такого форматаНужно перебрать массив и если в первом и втором массиве есть совпадения ключа, например [Вася]...

304
Как отобразить страницы в bitrix?

Как отобразить страницы в bitrix?

Проблема началась с того как я стал редактировать страницу "NanoCAD"(скриншот 1) Потом изменил страницу в визуальном редакторе, просто удалив...

357
php сложение времени

php сложение времени

Подскажите, как правильно складывать значения времени? Время получаю в формате 04:00, перевожу его в таймстамп, затем делаю сложениеНо результат...

397