Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Zliczanie wyników z bazy...
--drwal--
post
Post #1





Goście







Witam serdecznie...
Mam takie pytanie mianowicie jako że rozpocząłem niedawno naukę z php i MySql zwracam się do was zapytaniem... Wymyśliłęm sobie jakiś tam przykład mianowicie załóżmy mam w bazie użytkwonikó z całej Polski załóżmy 1000 i teraz mam o nich takie dane jak województwo i takie jak powiat. I chciałbym zrobić bardzo szybko statystyki mógłbym oczywiście napisać odpowiednie dla każdej opcj zapytanie typu:
  1. SELECT count(*) AS ilosc FROM `dane` WHERE `dane`.`wojewodztwo`='małopolskie';
  2. SELECT count(*) AS ilosc FROM `dane` WHERE `dane`.`wojewodztwo`='śląskie';
  3. SELECT count(*) AS ilosc FROM `dane` WHERE `dane`.`wojewodztwo`='dolnośląskie';


ale nie było by to chyba zbyt efektywne i wydajne zresztą wypisanie wszystkich powiatów trochę by zajęło...

I teraz moje pytanie jak najszybciej zrobić aby wypisało mi dla każdego województwa i dla każdego powiatu ilu jest użytkownikó w bazie...

Nie wiem czy dobrze główkuję ale wymyśliłem coś takiego że najpierw należałoby zliczyć wartości unikalne np dla tabeli `wojewodztwo`
  1. SELECT DISTINCT

i upakować to do zmiennej np $wojewodztwo

i potem chyba o ile dobrze rozumiem odtworzyć dane w pętli while (IMG:style_emoticons/default/questionmark.gif)
  1. {
  2. SELECT count(*) AS ilosc FROM `dane` WHERE `dane`.`wojewodztwo`='".$wojewodztwo."';
  3. $ile1 = $db->query($ile);
  4. $ilosc = $ile1->fetch_assoc();
  5.  
  6. $mp=$ilosc['ilosc'];
  7. echo ('W województwie: '.$wojewodztwo.' jest zarejstrowanych '.$mp.);}


Czy ktoś mógłby mnie naprowadzić jak najlepiej zliczać takie statystyki (IMG:style_emoticons/default/questionmark.gif)

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
amdziak
post
Post #2





Grupa: Zarejestrowani
Postów: 36
Pomógł: 1
Dołączył: 2.01.2012

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


jesli przedmioty sa w tej samej tabeli, to daj jeszcze jakis AND przedmiot IN (wylicz przedmioty) i powinno dzialac - jesli dobrze rozumiem o co Ci chodzi... (IMG:style_emoticons/default/smile.gif)


a i jeszcze jedno:
dobra praktyka przy order by jest uzywanie numeru kolumny zamiast jej nazwy (IMG:style_emoticons/default/smile.gif)
czyli zamiast

  1. SELECT `miasto` , count( * ) AS ilosc FROM `dane` GROUP BY `miasto` ORDER BY ilosc DESC;


daj:

  1. SELECT `miasto` , count( * ) AS ilosc FROM `dane` GROUP BY `miasto` ORDER BY 2 DESC;


Ten post edytował amdziak 8.03.2014, 17:50:07
Go to the top of the page
+Quote Post

Posty w temacie


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: 8.10.2025 - 10:34