Постараюсь изложить суть проблемы в кратце. Учусь программировать на php, для работы с базой данных использую PDO, разобрался как подключаться к бд и работать с запросами (понял суть), но тут столкнулся с проблемой следующего характера вывод информации например в titel не могу реализовать. То есть выполнил запрос, а вывести данные в titel я не могу. Посоветуйте хороший материал по работе с PDO.
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
Если это выборка тайтла и т.д. для конкретной страницы, то просто fetch. И про настройку PDO::FETCH_ASSOC не забываем. В шаблонах выводится примерно так: PHP: <title><?= $page['title'] ?></title> ... <h1><?= $page['title'] ?></h1>
Вчера не мог уснуть со спокойной душой, и все таки решил разобраться в своем вопросе и пришел к решению что ниже. PHP: $id = 2; // уникальный id строки выборки $stmt = $dbh->prepare("SELECT * FROM categories WHERE `id` = ?"); //подготавливаю запрос с помощью метода prepare $stmt->execute([$id]); // передаю массив с переменными $category = $stmt->fetch(PDO::FETCH_LAZY); echo '<pre>'; print_r($category); $title = $category['name']; //переменной $title присваиваю значение name полученного с помощью метода fetch Если я правильно понимаю строки которые я получаю из бд после выполнения запроса они поступают в виде массива в данном запросе с именнованными ключами. Я прав или не в то русло иду?
Нужно проверить, что выборка не пустая, прежде чем «извлекать» поля в переменные и выводить значения этих полей/переменных. Без крайней необходимости лучше не менять имена «на лету» (name на title и т.п.). Используйте исходное имя из БД, т.е. в данном случае name, если, конечно, у вас тайтл не отличается от name (по коду не видно). --- Добавлено --- P.S. Пустое переприсваивание отдельных полей – это в большинстве случаев идиотизм. Используйте extract или оставьте в исходном виде, т.е. в виде объекта/массива.
В том виде, в котором вы у PDO закажите. Если что, даже такое есть: https://www.php.net/manual/ru/pdostatement.fetchcolumn.php