ďťż

[PHP/MySQL] Wyświetlanie ilość wpisów z różnych kategorii

       

Podstrony


telcocafe

Witam. Tak się zastanawiam...
$inne = "SELECT count(dzial) as ile, dzial FROM articles WHERE dzial = 'Polityka' GROUP BY dzial";
Te zapytanie zwraca liczbę atykułów z kategorii "polityka". Mam jeszcze kilka kategorii. Jak usprawnić skrypt abym ciągle nie musiał pisać:
$inne = "SELECT count(dzial) as ile, dzial FROM articles WHERE dzial = 'Polityka' GROUP BY dzial"; $inne2 = "SELECT count(dzial) as ile2, dzial FROM articles WHERE dzial = 'Kategoria3' GROUP BY dzial"; $inne3 = "SELECT count(dzial) as ile3, dzial FROM articles WHERE dzial = 'Sport' GROUP BY dzial"; $inne4 = "SELECT count(dzial) as ile4, dzial FROM articles WHERE dzial = 'Media' GROUP BY dzial";
??

Da się to jakoś zoptymalizować? Aby wyświetlało się pokolei ilość artykułów ze wszystkich działów? np:

Polityka - 43
Sport - 12
Media - 99
Kategoria3 = 2

itepe
Użytkownik sauron edytował ten post 17 sierpień 2007, 12:47


Utwórz tablicę ze wszystkimi działami.
$tablica = array('Polityka', 'Dzial2'); for($i=0;$i<count($tablica);$i++) { $sql = "SELECT count(dzial) as ile, dzial FROM articles WHERE dzial = '$tablica[$i]' GROUP BY dzial"; $result = mysql_query($sql) or die('Error'.mysql_error()); $result = mysql_fetch_row($result); echo("Dział $tablica[$i] posiada $result[0] artykułów.<br>"); }

//Jeśli coś napisałem źle to poprawcie.
Użytkownik kokoss15 edytował ten post 17 sierpień 2007, 12:53
A nie możesz po prostu wywalić warunek WHERE? Wtedy pobiorą Ci się wszystkie rekordy, czyli de facto wszystkie kategorie i ilość artykułów w nich. I potem przelecisz to pętlą while z mysql_fetch_array chociażby.

@EDIT:
Riklaunim - o to mi mniej więcej chodziło, tylko nie wiedziałem jak to ująć :)
Użytkownik kutar edytował ten post 17 sierpień 2007, 15:16
fakt.. ale dobrze jest tez zrobic tak jak ja podalem tylko zamiast samemu pisac tablice z dzialami to pobrac ja z mysql i zastosowac mysql_fetch_array lub nawet mysql_fetch_row...
wtedy skrypt bedzie tez dobrze dzialal po dodaniu nowej kat.



zamiast wykonywać zapytania w pętli dodawać jakieś tablice wystarczy jedno zapytanie COUNT grupujące po nazwie kategorii i zrobione.

Przecież to banał <_< Wywal dialektywę WHERE i przechwytuj mysql_fetch_assoc czy tak tam uważasz . . . Ja sprawdziłem i działa :)
BTW
@sauron:
Chciałem nawet zakładać podobny temat,ale dzięki,Tobie rozwiązałem swój problem :P

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.