Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Sumowanie wyników z zapytania
Forum PHP.pl > Forum > Bazy danych > MySQL
piotrek442
  1. $query = "SELECT imie,COUNT(ID) AS sum,dayofbirth,monthofbirth,yearofbirth FROM tabela where imie = 'Jacek' GROUP BY imie,dayofbirth,monthofbirth,yearofbirth";
  2. $result = mysql_query($query) or die('Query failed: ' . mysql_error());
  3. while($r = mysql_fetch_array($result))
  4. {
  5. $datax[]= $r['imie']."".$r['dayofbirth']."/".$r['monthofbirth']."/".$r['yearofbirth'];
  6. $data[] = $r['sum'];
  7. }


Teraz mi zwraca np 20 wyników, a jak zliczyć to w zapytaniu żeby zwracało samo 20?
Chodzi mi o to żeby grupowało urodzenia po dniach i imionach a potem zliczało te zgrupowane dane
Crozin
Masz dwie opcje:
1. Wykonać zapytanie zliczające ilość wyników, tj.:
  1. SELECT COUNT(*) FROM (SELECT imie,COUNT(ID) AS sum,dayofbirth,monthofbirth,yearofbirth FROM tabela WHERE imie = 'Jacek' GROUP BY imie,dayofbirth,monthofbirth,yearofbirth) x;

2. Zobacz ile wyników masz w $result: mysql_num_rows

Dodatkowo: Nie powinieneś korzystać z funkcji mysql_*() - są przestarzałe i niewspierane, skorzystaj z PDO; datę urodzenia powinieneś raczej trzymać jako pojedyncze pole typu DATE.
piotrek442
a co w przypadku gdybym dał na wszystkie imiona? Bez tego:
  1. WHERE imie = 'Jacek'
W tym przypadku zwraca 1 rekord. A jak zrobić zeby zwrociło wszystkie imiona?
bmaci3k
usuń z selecta
  1. where imie = 'Jacek'
wtedy pokaże wszystkie imiona

albo wpisz
  1. WHERE imie = '%'
piotrek442
Dziękuje za pomoc, przerobiłem troche i działa guitar.gif
mmmmmmm
@bmaci3k:
znasz kogokolwiek, kto spełnia ten warunek:
WHERE imie = '%'
?
Pyton_000
Pan Tadeusz haha.gif
bmaci3k
Cytat(mmmmmmm @ 3.11.2014, 15:46:52 ) *
@bmaci3k:
znasz kogokolwiek, kto spełnia ten warunek:
WHERE imie = '%'
?

miało być

  1. WHERE imie LIKE '%'


To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.