Skocz do zawartości

[PHP/MYSQL] Ranking Użytkowników


Necro

Rekomendowane odpowiedzi

Witam, mam pewien problem z którym nie mogę sobie poradzić. Szukałem już długo odpowiedzi ale nie mogę znaleźć.

Chce zrobić ranking użytkowników którzy dodali jak najwięcej opisów i wyświetlić jego nick a obok ilość dodanych opisów.

Tabela z użytkownikami wygląda Tak:

ID (int11)
nazwa varchar(255) 
opis text 
kategoria int(11) 
uzytkownik varchar(255)  - to jest nazwa użytkownika

Ale zarazem nie chce wyświetlić w rankingu Admina (login: admin)

Czy ktoś wie jak to zrobić?, i może pomóc

Pozdrawiam

Odnośnik do komentarza
Udostępnij na innych stronach

Wykonaj to zapytanie w okienku phpMyAdmin, jeśli będzie wskazywać poprawne dane, to działa.

A jak wyświetlić, to już sam powinieneś wiedzieć najlepiej - przecież to Twoja strona i wstawisz to gdzie chcesz. :-P

cnt to alias do wyniku ilości komentarzy danego użytkownika.

Polecam linki stałe w Seomatik.pl oraz dopalacz stron Gotlink.pl.

obrazek.jpg

Odnośnik do komentarza
Udostępnij na innych stronach

SQL:

int: id elementu dla którego prowadzone jest głosowanie - klucz główny

varchar: adres_ip

int: wartość głosu (liczbowa +1/-1)

datetime: data oddania głosu

Oddanie głosu:

przeszukanie czy dany IP oddał głos do X minut wstecz, jeśli nie zaliczenie głosu

Zliczanie głosów:

SELECT dla danego klucza głównego, grupowanie po wartości głosu, count (żeby policzyć oddzielnie głosy na + i na -)

lub

SELECT sum wartość głosu dla danego klucza głównego, żeby policzyć sumaryczną wartość wszystkich głosów

Prostszy wariant (SQL):

int: id elementu dla którego prowadzone jest głosowanie - klucz główny

varchar: adres_ip+data - klucz unikalny

int: wartość głosu (liczbowa +1/-1)

przy dodawaniu głosu wystarczy insert i ON DUPLICATE KEY UPDATE, nie trzeba przeszukiwać bazy minus jest taki że można głosować raz dziennie, ale można oddać 2 głosy na przykład o 23:59 i 00:00 bo dni się różnią.

--

Informacja o zaliczonym głosie: ajax / prototype, ale wystarczy wczytanie kodu głosowania jako obrazka i użycie onload, żeby wyświetlić komunikat o zakończeniu głosowania.

Tak czy inaczej polecam prosty wariant:

element_id (INT) - klucz główny

klucz (varchar) - indeks unikalny (w PHP to będzie DATA+adres IP)

wartosc (tinyint) - +1 / -1

Jeszcze uwaga, że liczba przy int (np. int(11) nie ma żadnego wpływu na zakres, tylko na wyświetlanie danych, np. w int(1) dalej można zapisywać liczby zajmujące max 4 bajty, np. 2836164).

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności