PHP PDO вывести все данные из таблицы используя MVC
Если мы используем MVC, то в одном файле мы сначала пишем логику, а потом выводим логику. Используем цикл, но т.к. файл подключается только один раз, то использование цикла бессмысленно. Получаю вот это, но в таблице минимум 30 колонок. Получается что нужно писать весь php код вывода прямо в файле вёрстки?
Index.php (верстка)
<div class="books">
<div class="book">
<div class="book__image">
<img src="" alt="">
</div>
<div class="book__title"><?php echo $name ?></div>
<div class="book__author">Автор: <span class="bold_info"><a href="#"><?php echo $author ?></a></span></div>
<div class="book__genre">Жанр: <span class="bold_info"><?php echo $genre ?></span></div>
<div class="book__pages">Страниц: <span class="bold_info"><?php echo $pages ?></span></div>
<a href="#"><button>Читать</button></a>
</div>
</div>
Main.php (логика)
class Main //extends Model
{
public static function showBooks() {
$db = new Db;
$result = $db::GetRow("SELECT * FROM books");
return $result;
}
// public static function showBooks() {
// $db = new Db;
// $result = $db::GetBoth("SELECT * FROM books");
// while($res = $result) {
// return [
// 'name' => $result['name'],
// 'author' => $result['author'],
// 'genre' => $result['genre'],
// 'pages' => $result['pages']
// ];
// }
// }
}
MainController.php (отправляем логику в верстку)
class MainController extends Controller
{
public function indexAction() : void {
//debug(Main::showBooks());
$vars = [
'style' => '/public/styles/indexStyle.css',
'script' => '/public/scripts/indexScript.js',
'name' => Main::showBooks()['name'],
'author' => Main::showBooks()['author'],
'genre' => Main::showBooks()['genre'],
'pages' => Main::showBooks()['pages']
];
$this->view->render('Главная страница', $vars);
}
}
