Приветствую, начал понемногу изучать php, решил сделать псевдо блог в котором сделал вывод статей из базы данных, подсчет этих статей, подсчет страниц. Делал этот блог по старой статье с Хабра, но брал от туда логику и последовательность кода. В основном все делал сам. Кому не лень, оцените пожалуйста и укажите на ошибки, чтобы в дальнейшем на них не натыкаться. Спасибо.
<?php
include 'db.php';
$lim = 5;
// Отображаем колличество записей в таблице и количество страниц
$query = $connect->query('SELECT COUNT(*) as count FROM blog'); // Создаем запрос к базе
$query->setFetchMode(PDO::FETCH_ASSOC); // Извлекаем строки
$arr = $query->fetch(); // Помещаем в массив
$counter = $arr['count'];
echo "Количество записей: " . $counter . "<br>";
$pages = $counter / $lim;
echo "Количество страниц: " . $pages;
class Short
{
public function result($stmt) { // Функция отображающая записи бд
while($array = $stmt->fetch()) {
echo "<section>
<h2>{$array['title']}</h2>
{$array['content']}
<p class=\"date\">{$array['date']}</p>
</section>";
}
}
public function main_result($connect, $lim) { // Функция создающая запрос и отображающая записи бд
$stmt = $connect->prepare("SELECT * FROM blog ORDER BY date DESC LIMIT :lim");
$stmt->bindParam(':lim', $lim);
$stmt->execute();
$this->result($stmt);
}
}
$short = new Short();
if (isset($_GET['page'])) {
$page = (int) $_GET['page'];
// $page = 1;
if ($page > 0 && $page <= $pages) {
// Считаем с какой статьи показывать контент
$start = $page * $lim - $lim;
// Подготавливаем запрос и выполняем его
$sql = "SELECT * FROM blog ORDER BY date DESC LIMIT :start, :lim";
$stmt = $connect->prepare($sql);
$stmt->bindParam(':start', $start);
$stmt->bindParam(':lim', $lim);
$stmt->execute();
// Выводим статьи
$short->result($stmt);
} else {
$short->main_result($connect, $lim);
}
} else {
$short->main_result($connect, $lim);
}
echo '<a href="index.php?page='.($page-1).'">← туда</a>';
echo '<a href="index.php?page='.($page+1).'"> туда →</a>';
?>