Ajoute la recherche par date

This commit is contained in:
cofrizot
2022-12-11 15:39:31 +01:00
parent 30054e909a
commit 2ab457aa8f
3 changed files with 29 additions and 2 deletions

View File

@@ -23,8 +23,13 @@ class VisitorController {
$page = intval($params['page'] ?? 1);
$total = $gw->getCount();
$nbPages = Pagination::getNbPages($total, self::PER_PAGE);
$news = $gw->getPaginatedRecentNews($page , self::PER_PAGE);
if(!empty($_GET['dateDeb']) && !empty($_GET['dateFin'])) {
$news = $gw->getLike($_GET['dateDeb'], $_GET['dateFin'], $page , self::PER_PAGE);
} else {
$news = $gw->getPaginatedRecentNews($page , self::PER_PAGE);
}
$nbComments = $gwc->getCommentNumber();
if ($user !== null) {
$nbCommentsByUser = $gwc->getCommentNumberFromUser($user->getId());

View File

@@ -76,6 +76,24 @@ class NewsGateway
return $data === false ? null : $this->createNews($data);
}
/**
* @return News[]
*/
public function getLike(string $dateDeb, string $dateFin,int $page = 1, int $limit = 10): array {
$req = $this->pdo->prepare('SELECT * FROM news WHERE DATE_FORMAT(publication_date, "%Y-%m-%d") BETWEEN DATE_FORMAT(:dateDeb, "%Y-%m-%d") AND DATE_FORMAT(:dateFin, "%Y-%m-%d") ORDER BY publication_date LIMIT :limit OFFSET :offset;');
$req->bindValue(':dateDeb', $dateDeb, PDO::PARAM_STR);
$req->bindValue(':dateFin', $dateFin, PDO::PARAM_STR);
$req->bindValue('limit', $limit, PDO::PARAM_INT);
$req->bindValue('offset', ($page - 1) * $limit, PDO::PARAM_INT);
if (!$req->execute()) {
return [];
}
$news = [];
while ($data = $req->fetch()) {
$news[] = $this->createNews($data);
}
return $news;
}
private function createNews(array $data): News
{