Управлять результатами объекта PDO в шаблоне - PullRequest
0 голосов
/ 03 октября 2018

Я создаю новостную страницу, которая будет обновляться каждый раз, когда администратор добавляет строку в таблицу новостей.Строки выглядят следующим образом:

ID, POSTTITLE, POSTDATE, POSTAUTHOR, MESSAGE

Я создал цикл foreach, который берет все данные, извлеченные из этой таблицы, и получает данные извложенный массив:

<?php

$pdo->beginTransaction();
$query = $pdo->prepare("SELECT * FROM news");
$query->execute();
$results = $query->fetchAll(PDO::FETCH_OBJ);


foreach($results as $row) {
    foreach($row as $key => $value) {
        dump( $key . " = " . $value);
    }
}

$pdo->commit();
?>

Это выводит эти данные:
(что представляет собой все данные внутри таблицы)

"id = 1"
"posttitle = Welcome To Universal Link Media Group"
"postdate = 2018-10-02"
"postauthor = Ethan (Super Administrator)"
"message = Dummy Text. "

Теперь вот мой вопрос.Я хочу создать шаблон для каждого поста.Так они одинаковы.Каждый пост будет иметь поле 'title', поле 'date', поле 'author' и т. Д., И я хочу поместить значения из таблицы в поля.

Это будет выглядеть примерно такэто:

НАЗВАНИЕ: $ posttitle
АВТОР: $ postauthor
СОЗДАНИЕ ДАТЫ: $ postdate
СООБЩЕНИЕ: $ message

И я бы хотел, чтобы оно было динамичным,поэтому не имеет значения, сколько строк в таблице, всегда будет шаблон поста с данными постов внутри него.

Любая помощь будет принята с благодарностью, застрял в этой проблеме довольноwhile.

Спасибо!

1 Ответ

0 голосов
/ 03 октября 2018

Чтобы получить желаемый результат, вам просто нужно изменить свой цикл следующим образом:

foreach($results as $row) {
  echo 'TITLE: ' . $row->posttitle . '<br>';
  echo 'AUTHOR: ' . $row->postauthor . '<br>';
  echo 'DATE CREATED: ' . $row->postdate . '<br>';
  echo 'MESSAGE: ' . $row->message . '<br>';
}

Если вы действительно хотите сделать Templates, вы должны взглянуть на некоторые языки шаблонов, такие как Twig.https://twig.symfony.com/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...