Cytat(LowiczakPL @ 4.03.2021, 18:34:39 )

jeśli szukasz wyników z ostatniego miesiąca to może tak
Dla sprostowania: "Chociaż wczoraj już napisałem taką funkcję na zapytaniu." ... funkcję tę napisałem dla wyświetlenia 5 popularnych artów,
pozostaje jeszcze napisać funkcję dla sprawdzenia czy art mieści się w ocenie popularności, jeśli tak wyświetl etykietę "Popularny" i tutaj przydadzą się podane "wzory".
Wolałem zamiast ->andWhere('a.uploaded_at >= (NOW() - INTERVAL 1 MONTH)') dać $conditions_for_date
mając na względzie funkcję = ocena (wskaźnik popularności), ale dzięki.
Cytat(nospor @ 4.03.2021, 16:55:03 )

Z ciekawosci:
->setParameter('null', '')
co to robi?
To będzie nasz Secret secret secret:
->where('a.thumbnail != :null')

Funkcja napisana i będzie pomocna.
// [ocena = unikalne wyswietlenia / (godziny od publikacji * 8)] [wskaznik = default 8 hours]
public function favoriteCalculator($uniqueViews, $dateArticle, $hoursIndicator = 8) {
$hours_from_publication = round((time() - $dateArticle) / (60
* 60
));
$rating = ($uniqueViews / ($hours_from_publication * $hoursIndicator));
return $rating;
}
// Popular post (function)
$indicator = 0.95;
foreach () {
...
$rating = $this->favoriteCalculator($views_article, $date_article);
if (($rating > $indicator)) $status = 'popular';
}
Można by jeszcze zapytać o drobiazgi:
1. $hoursIndicator - dlaczego 8h, czy tak będzie optymalnie, w jakich warunkach?
2. $indicator - jaką wartość przyjąć za optymalną dla sprawdzenia $rating, przyjąłem 0.95?