За последние 24 часа нас посетили 22813 программистов и 1272 робота. Сейчас ищут 711 программистов ...

PDO PHP вывод данных

Тема в разделе "PHP для новичков", создана пользователем BAbl_gun, 24 май 2020.

?

вы используйте PDO?

  1. да

    72,7%
  2. нет

    27,3%
  1. BAbl_gun

    BAbl_gun Новичок

    С нами с:
    25 апр 2020
    Сообщения:
    32
    Симпатии:
    2
    Постараюсь изложить суть проблемы в кратце. Учусь программировать на php, для работы с базой данных использую PDO, разобрался как подключаться к бд и работать с запросами (понял суть), но тут столкнулся с проблемой следующего характера вывод информации например в titel не могу реализовать. То есть выполнил запрос, а вывести данные в titel я не могу. Посоветуйте хороший материал по работе с PDO.
     
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв
    https://www.php.net/manual/ru/book.pdo.php

    Получаем данные в переменную в виде массива, с помощью цикла перебираем массив и в цикле обращаемся к ключу массива для вывода текста с помощью echo

    https://www.php.net/manual/ru/function.echo.php
    https://www.php.net/manual/ru/control-structures.foreach.php
    https://www.php.net/manual/ru/language.types.array.php
    https://www.php.net/manual/ru/pdostatement.fetchall.php
     
    BAbl_gun нравится это.
  3. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.792
    Симпатии:
    650
    Если это выборка тайтла и т.д. для конкретной страницы, то просто fetch. И про настройку PDO::FETCH_ASSOC не забываем. В шаблонах выводится примерно так:
    PHP:
    1. <title><?= $page['title'] ?></title>
    2. ...
    3. <h1><?= $page['title'] ?></h1>
     
  4. BAbl_gun

    BAbl_gun Новичок

    С нами с:
    25 апр 2020
    Сообщения:
    32
    Симпатии:
    2
    Вчера не мог уснуть со спокойной душой, и все таки решил разобраться в своем вопросе и пришел к решению что ниже.
    PHP:
    1. $id = 2; // уникальный id строки выборки
    2. $stmt = $dbh->prepare("SELECT * FROM categories WHERE `id` = ?"); //подготавливаю запрос с помощью метода prepare
    3. $stmt->execute([$id]); // передаю массив с переменными
    4. $category = $stmt->fetch(PDO::FETCH_LAZY);
    5. echo '<pre>';
    6. print_r($category);
    7.  
    8. $title = $category['name']; //переменной $title присваиваю значение name полученного с помощью метода fetch
    Если я правильно понимаю строки которые я получаю из бд после выполнения запроса они поступают в виде массива в данном запросе с именнованными ключами. Я прав или не в то русло иду?
     
  5. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.792
    Симпатии:
    650
    Нужно проверить, что выборка не пустая, прежде чем «извлекать» поля в переменные и выводить значения этих полей/переменных. Без крайней необходимости лучше не менять имена «на лету» (name на title и т.п.). Используйте исходное имя из БД, т.е. в данном случае name, если, конечно, у вас тайтл не отличается от name (по коду не видно).
    --- Добавлено ---
    P.S. Пустое переприсваивание отдельных полей – это в большинстве случаев идиотизм. Используйте extract или оставьте в исходном виде, т.е. в виде объекта/массива.
     
    #5 miketomlin, 25 май 2020
    Последнее редактирование: 25 май 2020
  6. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.555
    Симпатии:
    1.754
    В том виде, в котором вы у PDO закажите. Если что, даже такое есть: https://www.php.net/manual/ru/pdostatement.fetchcolumn.php