50 lines
1.3 KiB
PHP
50 lines
1.3 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace mirzaev\surikovlib\models;
|
|
|
|
use pdo;
|
|
use exception;
|
|
|
|
/**
|
|
* Модель книг
|
|
*
|
|
* @package mirzaev\surikovlib\models
|
|
* @author Arsen Mirzaev Tatyano-Muradovich <arsen@mirzaev.sexy>
|
|
*/
|
|
final class books_model extends core
|
|
{
|
|
public static function read(array $where = [], int $limit = 1, int $page = 1): array
|
|
{
|
|
// Инициализация строки поиска
|
|
$row = '';
|
|
|
|
// Инициализация параметров запроса
|
|
$params = [];
|
|
|
|
foreach ($where as $parameter => $value) {
|
|
// Перебор параметров поиска
|
|
|
|
// Запись функции
|
|
if(empty($row)) $row = 'WHERE ';
|
|
|
|
// Запись в строку поиска
|
|
$row .= "`$parameter` = :$parameter";
|
|
|
|
$params[$parameter] = $value;
|
|
}
|
|
|
|
// Инициализация страницы
|
|
$page = $limit * --$page;
|
|
|
|
// Инициализация запроса
|
|
$request = static::$db->prepare("SELECT * FROM `books` $row LIMIT $page, $limit");
|
|
|
|
// Отправка запроса
|
|
$request->execute($params);
|
|
|
|
return (array) $request->fetchAll(pdo::FETCH_ASSOC);
|
|
}
|
|
}
|