Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MYSQL] Statystyki, top ten, ranking - problem
green90
post
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 6.08.2008

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


Witajcie,

Mam tabelę MySQL, w jednej z kolumn są dane w rodzaju:

Kowalska
Nowak
Iksińska
Kowalska
Igrekowska
Iksińska
Nowak
Leszczyńska
Igrekowska
Kowalska
Opalińska
Kowalska

Jak widać - nazwiska w wierszach tej kolumny się powtarzają, w każdym wierszu tej kolumny jest tylko jedno nazwisko.
Jak zrobić ranking, statystyki, topten jakie nazwiska się najczęściej powtarzają? Chodzi mi o coś w rodzaju:

Miejsce | Nazwisko | Ilość wystąpień
1 Kowalska 4 wystąpienia
2 Nowak 2 wystąpienia
3 Iksińska 2 wystąpienia
4 Igrekowska 1 wystąpienie
5 Opalińska 1 wystąpienie
6 Leszczyńska 1 wystąpienie

Bardzo proszę o pomoc smile.gif Kombinowałem z COUNT, GROUP i nie wychodzi...
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
nospor
post
Post #2





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




Cytat
ardzo proszę o pomoc Kombinowałem z COUNT, GROUP i nie wychodzi...
To pokaz jak kombinowales a my ci pokazemy co robiles źle


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
green90
post
Post #3





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 6.08.2008

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


OK, już się poprawiam: Kolumna z nazwiskami nazywa się nazwisko, a tabela w bazie MySQL - tabela.

Kod
$zapytanie = mysql_query("SELECT nazwisko FROM tabela GROUP BY nazwisko");
$topten = mysql_num_rows($zapytanie);

.
.
.
.

<? PHP echo $topten; ?>


Przepraszam za swoją niewiedzę, dopiero zaczynam... i utknąłem na takim problemie smile.gif
Go to the top of the page
+Quote Post
nospor
post
Post #4





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




no dobra, a gdzie tu COUNT, z ktorym niby cos kombinowales? Nie ladnie tak klamac winksmiley.jpg

  1. SELECT nazwisko, count(nazwisko) ilosc FROM tabela GROUP BY nazwisko

i juz smile.gif

Teraz przy pomocy petli i mysql_fetch_array() (patrz manual) musisz odebrac dane


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
SirZooro
post
Post #5





Grupa: Zarejestrowani
Postów: 243
Pomógł: 32
Dołączył: 14.06.2007

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


Jak chcesz mieć to jeszcze posortowane wg popularności to dodaj jeszcze ORDER BY COUNT(nazwisko) DESC na końcu.


--------------------
Go to the top of the page
+Quote Post
green90
post
Post #6





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 6.08.2008

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


Witajcie, to znowu ja... smile.gif

Kod
<?php

/* topten najwiekszych upierdliwcow */
$zapytanie = mysql_query("SELECT nazwisko, COUNT(nazwisko) '10' FROM tabela GROUP BY nazwisko");
while($wynik=mysql_fetch_array($zapytanie))
echo $wynik["ID_User"];

?>


Powyższy kawałek kodu działa - wyświetla wszystkie unikalne nazwiska znalezione w kolumnie "nazwisko" - czyli wycina powtarzające się.

Niestety nie dałem rady z posortowaniem tego według ilości wystąpień malejąco oraz jak zrobić żeby obok nazwiska była wyświetlana liczba jego wystąpień w kolumnie "nazwisko"? Nie działa niestety też zawężenie wyników do 10 najpopularniejszych, wyświetlają się wszystkie...

Any ideas...? smile.gif
Go to the top of the page
+Quote Post
nospor
post
Post #7





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




cos ty na tworzyl? Widziales co ci dalem? To czemu tego nie uzyles? A do zawezania sluzy limit.
I uzywaj wlasciwego bbcode
  1. <?php
  2. $zapytanie = mysql_query("SELECT nazwisko, COUNT(nazwisko) ilosc FROM tabela GROUP BY nazwisko order by ilosc desc limit 10");
  3. while($wynik=mysql_fetch_array($zapytanie)) 
  4. echo $wynik["nazwisko].' '.$wynik['ilosc'];
  5. ?>


Na przyszlosc jak sie nie znasz to nie wymyslaj tylko zajrzyj do manuala smile.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 20.08.2025 - 08:03