Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [CI][CodeIgniter]ActiveRecord - najaktywniejsi użytkownicy
Forum PHP.pl > Forum > PHP > Frameworki
qrooel
Witam,

Macie może pomysł jak wyciągnąć kilku [np. 3] najaktywniejszych użytkowników?
Przez najaktywniejszy rozumiem takiego, który napisał najwięcej postów.

Tabela użytkownicy:
- user_id
- user_nickname

Tabela komentarzy:
- comment_id
- comment_user_id

Ania 3.
Janek napisał 25 komentarzy.
Andrzej 10.
Waldemar 1.

  1. $query = $this->db
  2. ->select('user_id, user_nickname')
  3. ->select('comment_user_id')
  4. ->order_by('comment_user_id DESC')
  5. ->join('comments', 'user_id = comment_user_id', 'left')
  6. ->get('users');


Chciałbym to zrobić za pomocą bazy, a nie mielić w php.

Dzięki.

Ok, w kiblu wpadłem na pomysł, że zrobię sobie tabelkę points gdzie będą przyznawane punkty za komentarz do użytkownika. ;P

Rozwiązanie:

  1. $query = $this->db
  2. ->select('user_id, user_nickname')
  3. ->select('up_user_id, up_point')
  4. ->order_by('points DESC')
  5. ->select_sum('up_point', 'points')
  6. ->group_by('up_user_id')
  7. ->join('user_points', 'user_id = up_user_id')
  8. ->get('users', 3);
rugby
Po co jakieś punkty? Wystarczy jedna linijka:
  1. $this->db->select('comment_user_id','count(comment_id) as ile_komci')->from('comments')->group_by('comment_user_id')->order_by('ile_komci','desc')->limit(3)->get();
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.