Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Sumowanie wartości pobranych z tabeli mysql
jacusek
post 10.01.2012, 13:46:55
Post #1





Grupa: Zarejestrowani
Postów: 262
Pomógł: 3
Dołączył: 18.10.2009
Skąd: Łódź

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


Witam.
Mam taki kod, który ma za zadanie określić kategorię i sumę wydatków za konktretną kategorię i ogólną sumę wydatków:
Zrobiłem to w następujący sposób
  1. $year=$_POST['rok'];
  2. $month=$_POST['miesiac'];
  3. $sql="select distinct kategoria, sum(kwota) as suma from obroty where date_format(data,'%Y%m')='$year$month' and kierunek='z' group by 1";
  4. $result=mysqli_query($mysqli,$sql) or die ("Błąd zapytania");
  5. echo "<table class=\"wyniki\" id=\"rez\">
  6. <tr><td>nazwa wydatku</td><td>miesiąc ($month.$year)</td></tr>";
  7. while ($rekord=mysqli_fetch_array($result, MYSQLI_ASSOC)){
  8. $kategoria = $rekord['kategoria'];
  9. $suma = $rekord['suma'];
  10. "<tr><td>$kategoria</td><td>$suma</td></tr>";
  11. }
  12. $sql2="select sum(kwota) as suma2 from obroty where date_format(data,'%Y%m')='$year$month' and kierunek='z'";
  13. $result2=mysqli_query($mysqli,$sql2) or die ("Błąd zapytania");
  14. while ($rekord2=mysqli_fetch_array($result2, MYSQLI_ASSOC)){
  15. $pelna_suma= $rekord2['suma2'];
  16. "<tr><td>Suma</td><td>$pelna_suma</td></tr>";
  17. }

I wszystko OK. Działa jak powinno. Jednak chciałbym się dowiedzieć czy da użyć funkcji array_sum, tak żeby nie trzeba było zadawać 2 osobnych pytań. Chodzi mi o to czy w zmianną $suma możnaby potraktować jako array. Mam jakieś zaćmienie, bo nie bardzo wiem jak to zrobić. Może ktoś mi dać jakąś podpowiedź?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
nospor
post 10.01.2012, 14:33:23
Post #2





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




1) Co robi pierwsze zapytanie a co robi drugie zapytanie
2) group by 1 - co to robi?

ps: jeśli drugie zapytanie ma zwracać sumę wszystkiego z pierwszego zapytania, to dodawać w php nie umiesz?
W pierwszej petli robisz:
$pelna_suma += $suma;
I juz.


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

"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
mortus
post 10.01.2012, 14:52:36
Post #3





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


Cytat(nospor @ 10.01.2012, 14:33:23 ) *
2) group by 1 - co to robi?

Zdaje się, że grupuje po pierwszej pobranej pozycji/kolumnie (czyli w tym przypadku po kolumnie kategoria), jak głosi manual.

Ten post edytował mortus 10.01.2012, 14:53:26
Go to the top of the page
+Quote Post
nospor
post 10.01.2012, 14:54:24
Post #4





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




Czyli w takim razie odpowiedzią jest moj PS z poprzedniego posta


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

"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
mortus
post 10.01.2012, 14:57:01
Post #5





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


Cytat(nospor @ 10.01.2012, 14:54:24 ) *
Czyli w takim razie odpowiedzią jest moj PS z poprzedniego posta

No tak chyba będzie najszybciej i najrozsądniej (czyt. bez konieczności wykonywania drugiego zapytania).
Go to the top of the page
+Quote Post
jacusek
post 11.01.2012, 08:22:17
Post #6





Grupa: Zarejestrowani
Postów: 262
Pomógł: 3
Dołączył: 18.10.2009
Skąd: Łódź

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


przepraszam coś i mi wczoraj wypadło i nie miałem dostępu do netu.
Więc dokładnie chodzi mi o taką tabelę
kategoria kwota
kat1 50
kat2 100
kat3 3.5
SUMA 153.5

I generalnie kod który mam spełnia swoje zadanie. Chodzi mi o możliwość ewentualnego użycie funkcji array_sum na postawie danych $suma, a nie wyciąganie sumy z dodatkowego pytania. Stąd moje pytanie.
Go to the top of the page
+Quote Post
nospor
post 11.01.2012, 08:23:39
Post #7





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




Przecież odpowiedź padła w moim pierwszym poście w tym temacie. Przeczytałeś to w ogóle?
Cytat
ps: jeśli drugie zapytanie ma zwracać sumę wszystkiego z pierwszego zapytania, to dodawać w php nie umiesz?
W pierwszej petli robisz:
$pelna_suma += $suma;
I juz.


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

"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
jacusek
post 11.01.2012, 08:33:38
Post #8





Grupa: Zarejestrowani
Postów: 262
Pomógł: 3
Dołączył: 18.10.2009
Skąd: Łódź

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


Jakieś zaćmienie z rana dzięki - o to właśnie chodziło.
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 Wersja Lo-Fi Aktualny czas: 14.08.2025 - 07:42