Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]sumowanie wartosci, jak zsumowac dane z 2 komorek
pkania128
post 16.11.2009, 20:01:02
Post #1





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 3.07.2009

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


witam, mam 3 komorki z wartosciami
id cena1 cena 2
1 20pln 25pln
2 40pln 15pln
itd....
takich rekordow w bazie jest kilka
probuje je do siebie dodac zeby wyszla ich suma

gdy sumuje za pomoca polecenia SUM
  1. $zapytanie = "SELECT SUM( cena1 + cena2 ) AS suma
  2. FROM `cena` ";
  3.  
  4. echo" suma: ";echo stripslashes($wiersz["suma"]),"


sumuje wszystkie ceny we wszystkich rekordach, mi zalezy zeby zsumowac cene1 i cene2 dla kazdego rekordu oddzielnie
cos na zasadzie:
id cena1 cena 2 Cena suma
1 20pln 25pln 45pln
2 40pln 15pln 55pln

gdy uzywam:
  1. $zapytanie = "SELECT SUM( cena1 + cena2 ) AS suma
  2. FROM `cena` WHERE id = '1' ";
  3.  
  4. echo" suma: ";echo stripslashes($wiersz["suma"]),"

to liczy mi to co chce ale dla konkretnego id, a mi zalezy zeby wyswietlala sie suma cena1 i cena2 dla kazdego rekordu oddzielnie

z gory dziekuje za pomoc

Go to the top of the page
+Quote Post
potreb
post 16.11.2009, 20:03:03
Post #2





Grupa: Zarejestrowani
Postów: 1 568
Pomógł: 192
Dołączył: 7.03.2005
Skąd: Warszawa

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


GROUP BY `id`

Ten post edytował potreb 16.11.2009, 20:04:26


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

Go to the top of the page
+Quote Post
Meares
post 16.11.2009, 20:11:36
Post #3





Grupa: Zarejestrowani
Postów: 102
Pomógł: 13
Dołączył: 16.10.2009
Skąd: Łódź

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


Nie jestem pewny czy zadziała ale spróbuj:
  1. $query = mysql_query('SELECT `id` AS "ID", `a` AS "A", `b` AS `"B", SUM(`a` + `b`) AS "SUMA" FROM `tabela` ORDER BY `id` ASC') or die(mysql_error());
  2. echo '<table><tr><td>ID</td><td>A</td><td>B</td><td>SUMA</td></tr>';
  3. while($result = mysql_fetch_assoc($query)) {
  4. echo '<tr><td>'.$result['ID'].'</td><td>'.$result['A'].'</td><td>'.$result['B'].'</td><td>'.$result['SUMA'].'</td></tr>';
  5. }
  6. echo '</table>';


Ten post edytował Meares 16.11.2009, 20:12:10


--------------------
manual mmocenter
Nie pomagam na PW!
Go to the top of the page
+Quote Post
pkania128
post 16.11.2009, 20:43:48
Post #4





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 3.07.2009

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


dzieki, troche zmodyfikowalem Wasze podpowiedzi i dziala
Go to the top of the page
+Quote Post
8_pasarzer_NOSTR...
post 17.11.2009, 09:01:52
Post #5





Grupa: Zarejestrowani
Postów: 109
Pomógł: 0
Dołączył: 5.11.2009

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


Witam podepnę się pod temat bo też mam problem z sumowaniem

Ja mam taka tabele.

GRAFIK

id p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 p16 p17 p18 p19 p20 p21 p22 p23 p24 p25 p26 p27 p28 p29 p30 p31

4 7 7 7 8 14 l-4 l-4 l-4 l-4 l-4 l-4 7 14 17 22 U U U U U 19 19 l-4 l-4 itd............


Chciałbym otrzymać wynik ilości kolumn gdzie nie występuje wpis "l-4" oraz "U". Dla tego przykładu wynik ten to 12, ale jak go osiągnąć ? Chciałbym osiągnąć liczbę ilości kolumn w jednym wierszu gdzie nie występuje ani wpis "l-4" ani wpis "U".

Go to the top of the page
+Quote Post
piotrooo89
post 17.11.2009, 09:09:56
Post #6


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




tak mi sie wydaje że w samym mysql'u tego nie zrobisz, tylko php w tym wypadku.


--------------------
Go to the top of the page
+Quote Post
8_pasarzer_NOSTR...
post 17.11.2009, 09:28:50
Post #7





Grupa: Zarejestrowani
Postów: 109
Pomógł: 0
Dołączył: 5.11.2009

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


Ok, a masz pomysła jak zrobić to w php ?
Go to the top of the page
+Quote Post
piotrooo89
post 17.11.2009, 09:52:40
Post #8


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




pobierasz dany rekord. każdą wartość wewalasz do tablicy, później iterujesz po tablicy i sprawdzasz jeśli jest różna od l-4 i U to zapisujesz, i każdy obieg pętli dodaje Ci jeden do licznika.


--------------------
Go to the top of the page
+Quote Post
8_pasarzer_NOSTR...
post 17.11.2009, 10:11:45
Post #9





Grupa: Zarejestrowani
Postów: 109
Pomógł: 0
Dołączył: 5.11.2009

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


Może masz gdzieś gotowe rozwiązanie, jeśli nie sam coś wymyśle. Chyba że ktoś ma jeszcze jakies pomysły ?
Go to the top of the page
+Quote Post
askone
post 17.11.2009, 10:21:51
Post #10





Grupa: Zarejestrowani
Postów: 654
Pomógł: 121
Dołączył: 27.10.2007
Skąd: Poznań, Łódź

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


Hej

Wydaje mi się, iż skoro pobierasz te dane z bazy to dasz radę także je policzyć winksmiley.jpg Aby nie generować dodatkowych zapytań do bazy skorzystaj z podzapytań w tym którym pobierasz dane:

  1. SELECT
  2. dane,
  3. SELECT count(id) FROM tabela WHERE STATUS = 'l-4',
  4. SELECT count(id) FROM tabela WHERE STATUS = 'U'
  5. FROM
  6. tabela


Zapytanie w MSSQL, ale pewnie da się zapisać i w MySQL winksmiley.jpg Oczywiście [dane] i [tabela] to tylko nazwy przykładowe...

Pozdro


--------------------
Kliknij jeśli moja odpowiedź Ci pomogła.
askone.pl
Go to the top of the page
+Quote Post
8_pasarzer_NOSTR...
post 17.11.2009, 14:17:27
Post #11





Grupa: Zarejestrowani
Postów: 109
Pomógł: 0
Dołączył: 5.11.2009

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


Witam, po długich bojach uporałm się z problemem. Dla potomnych podaje gotowe rozwiazanie:

  1. for ($i=1;$i<32;$i++)
  2. {
  3. include "baza.php";
  4. $zapytanie = "SELECT p$i FROM grafik where ((id='1') && (p$i!='l-4' && p$i!='L4' && p$i!='l4' && p$i
  5. !='L-4' && p$i!='u' && p$i!='U'))";
  6. $wykonaj = mysql_query($zapytanie) or die ("Zapytanie bazy o p$i błędne");
  7. $norma_ind = mysql_num_rows($wykonaj);
  8. print $norma_ind;
  9. $zapytanie = "update norma_ind set z$i='$norma_ind' where (id='1')";
  10. $wykonaj = mysql_query($zapytanie) or die ("Wprowadzenie normy ind błędne");
  11. unset($norma_ind);
  12. }
  13. $zapytanie=mysql_query("update norma_ind SET suma=z1+z2+z3+z4+z5+z6+z7+z8+z9+z10+z11+z12+z13+z14+z15+z16+z17+z18+z19+z20+z21+
    z22+z23+z24+z25+z25+z26+z27+z28+z29+z30+z31 WHERE id='1'"
    );


Pozostaje pobrać wynik z kolumny (suma) z tabeli norma_ind.

Wiem wiem, poleciałem schodami dookoła, ale ważne, że działa. Klasycznie już zaraz się znajdzie mądry, który napisze 1 linie kodu i osiągnie to samo, lecz gdy ja pytałem to on siedział cicho.
Pozdro
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: 10.06.2024 - 15:41