Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Toplista userów, z największą liczbą wiadomości
todaro
post
Post #1





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 4.11.2007

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


Moja tabela w bazie mysql składa się z kolumn: id, tytul, opis, user, data. Chcę zrobić toplistę userów, którzy napisali najwięcej wiadomości. Przenoszę dane do tablicy, a następnie obliczam, ile jest wystąpień poszczególnych userów, funkcją array_count_values(). Mam problem z posortowaniem wyników i wyświetleniem ich w tabelce.

Mam taki kod:

  1. <?php
  2. $zapytanie = "SELECT user FROM db";
  3. $idzapytania = mysql_query($zapytanie);
  4. while ($wiersz = mysql_fetch_row($idzapytania))
  5. {
  6. $user[]=$wiersz[0];
  7. }
  8. ?>


Wynikiem jest przykładowo tablica:

  1. <?php
  2. Array ( [user_01] => 7 [user_02] => 18 [user_03] => 1 )
  3. ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
.radex
post
Post #2





Grupa: Zarejestrowani
Postów: 1 657
Pomógł: 125
Dołączył: 29.04.2006

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


Wiesz, nie lepiej użyć "ORDER BY"?

A sortuje się funkcją sort() i jej pochodnymi. Zobacz sobie w manualu.
Go to the top of the page
+Quote Post
todaro
post
Post #3





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 4.11.2007

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


Z sortowaniem sobie poradziłem, jednak mam problem z utożsamieniem wyników z userami...

Wydaje mi się, że trzeba wykorzystać tablicę wielowymiarową.

$user[0] => user_01
$user[0] => 7

$user[1] => user_02
$user[1] => 18

$user[2] => user_03
$user[2] => 1

Proszę o jakąś podpowiedź.
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




to co chcesz zrobic robi sie na poziomie mysql.
slowa kluczowe:
group by
count
Go to the top of the page
+Quote Post
todaro
post
Post #5





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 4.11.2007

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


nospor, dzieki, napisałem coś takiego i działa (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) :

  1. SELECT user, count(*) AS ilosc FROM db GROUP BY user ORDER BY ilosc DESC
Go to the top of the page
+Quote Post

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: 4.10.2025 - 00:20