Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Ulubione / popularne artykuły - Favorite Post Calculator, Funkcja obliczająca popularność postu
Malinaa
post
Post #1





Grupa: Zarejestrowani
Postów: 577
Pomógł: 6
Dołączył: 21.07.2008

Ostrzeżenie: (0%)
-----


Mamy artykuły (np. 100 rekordów) w bazie danych, pola typu liczba odsłon (views) i data publikacji (date) i inne.
Jak obliczyć, które artykuły są najbardziej popularne / ulubione posty czytelników?

Przydałby się funkcja obliczająca jakiś wskaźnik popularności (sprawdzająca popularność)
i aby można była w pętli foreach generującej tablice danych najnowszych artykułów
"zaznaczyć" te, które mają parametry odpowiadające ulubionym / popularnym postom.

Jak określić popularność postu? Parametry: liczba odsłon, czas... Macie pomysł jak to zrobić?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Malinaa
post
Post #2





Grupa: Zarejestrowani
Postów: 577
Pomógł: 6
Dołączył: 21.07.2008

Ostrzeżenie: (0%)
-----


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')

(IMG:style_emoticons/default/smile.gif)


Funkcja napisana i będzie pomocna.

  1. // [ocena = unikalne wyswietlenia / (godziny od publikacji * 8)] [wskaznik = default 8 hours]
  2.  
  3. public function favoriteCalculator($uniqueViews, $dateArticle, $hoursIndicator = 8) {
  4.  
  5. $hours_from_publication = round((time() - $dateArticle) / (60 * 60));
  6.  
  7. $rating = ($uniqueViews / ($hours_from_publication * $hoursIndicator));
  8.  
  9. return $rating;
  10. }


// 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?

Ten post edytował Malinaa 5.03.2021, 00:27:58
Go to the top of the page
+Quote Post

Posty w temacie
- Malinaa   Ulubione / popularne artykuły - Favorite Post Calculator   2.03.2021, 20:13:41
- - LowiczakPL   Jak dla mnie popularność posta można określić na p...   3.03.2021, 14:15:23
- - Malinaa   Też tak to sobie wyobrażam, czyli wiemy o co chodz...   3.03.2021, 16:08:04
- - dublinka   Cytat(Malinaa @ 2.03.2021, 19:13:41 )...   3.03.2021, 16:58:01
- - LowiczakPL   Powinieneś dysponować logami (im więcej różnych da...   3.03.2021, 17:05:06
- - Malinaa   Odsłony i czas pisałem już, że są w bazie. Napisał...   3.03.2021, 17:25:35
|- - dublinka   Cytat(Malinaa @ 3.03.2021, 16:25:35 )...   3.03.2021, 19:03:53
- - Malinaa   Cytat(dublinka @ 3.03.2021, 19:03:53 ...   3.03.2021, 19:18:50
- - gino   Fiuuu aż tak poczytne masz te arty? Matematyka i s...   3.03.2021, 20:22:21
- - LowiczakPL   Malina tego algorytmu nie napisze się w kilka godz...   3.03.2021, 23:13:27
- - Malinaa   Cytat(gino @ 3.03.2021, 20:22:21 ) Fi...   3.03.2021, 23:55:59
- - gino   Raz piszesz że to nie ma być proty licznik tylko m...   4.03.2021, 07:07:32
- - LowiczakPL   to moja propozycja jest taka, stosowałem takie wzo...   4.03.2021, 08:15:27
- - Malinaa   CytatPisanie takiej funkcji musi mieć swoje uzasad...   4.03.2021, 16:32:24
- - nospor   Z ciekawosci: ->setParameter('n...   4.03.2021, 16:55:03
- - LowiczakPL   jeśli szukasz wyników z ostatniego miesiąca to moż...   4.03.2021, 18:34:39
- - Malinaa   Cytat(LowiczakPL @ 4.03.2021, 18:34:3...   5.03.2021, 00:18:40
- - LowiczakPL   Tu już zaczyna się analiza algorytmów i dobranie o...   5.03.2021, 07:46:12


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 3.10.2025 - 04:00