Вы можете просто добавить сортировку в запрос. Вам не нужно передавать случайную $id
в функцию. Вы можете изменить оператор SQL на:
$query = $conn->prepare("SELECT * FROM post ORDER BY id DESC LIMIT 0,1");
Также вы можете получить 3 документа в одном запросе с помощью,
$query = $conn->prepare("SELECT * FROM post ORDER BY id DESC LIMIT 0,3");
. Вы даже можете оптимизировать запрос, чтобы он выполнялся быстрее,
$query = $conn->prepare("SELECT id, title, description FROM post ORDER BY id DESC LIMIT 0,3");
Кроме того, вместо использования HTML внутри echo, вы можете создать многомерный массив предпочитаемой структуры или использовать тот, который возвращает запрос sql. И используйте метод foreach
и печатайте значения только внутри массива с PHP и оставляйте HTML как есть.
Будет генерироваться более чистый код.
Например:
<div class=col-md-4 text-center" style="margin-top: 5px;">
<a href="news.php?post=<?php echo $id; ?>"><?php echo $imgC; ?></a>
<h4 class="news-title"><?php echo $this->title; ?></h4>
<p class="news-para"><?php echo $this->description ?></p>
</div>