Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL] zliczanie sum
Forum PHP.pl > Forum > Przedszkole
pkania
witam,
mam strone [php] i tabelke ktora wyrzuca mi z bazy danych [mysql] cos takiego:
pawel 12
adam 15
aga 3

chcialbym aby zliczalo mi sume i wyszla taka tabelka:
pawel 12
adam 15
aga 3
------------
Razem 30

moze macie pomysl jak to zrobic?
z gory dziekuje za pomoc
strife
Takim zapytaniem policzysz łatwo ile jest tego razem winksmiley.jpg

  1. SELECT SUM(pole) AS suma FROM tabela
pkania
ok dzieki dziala, ale chcialbym wiecej:
pawel 12 1
adam 15 6
aga 3 3

chcialbym aby zliczalo mi sume i wyszla taka tabelka:
pawel 12 1
adam 15 6
aga 3 3
------------------
Razem 30 10
Cienki1980
Echh no trochę pomyśleć:
  1. SELECT sum(pole1),sum(pole2) ... FROM tabela
Gość
  1. <table border=1 bordercolor=red><tr><td>
  2. <?
  3. $result = mysql_query('SELECT * FROM `wyniki`');
  4. while($row = mysql_fetch_array($result))
  5. { echo '<tr><td>'.$row['pkt'].'</td></tr>';}
  6.  
  7. $result2 = mysql_query('SELECT SUM(waga) FROM `wyniki`');
  8. while($row2 = mysql_fetch_array($result2))
  9. { echo '<tr><td>'.$row2['pkt'].'</td></tr>';}
  10. ?></td></tr></table><br>


Mam podobny problem i nie wiem jak wyświetlić wynik funkcji.
Pierwsza część kodu jest OK, druga się nie wyświetla.

Czy mógłby ktoś pomóc?
Lion_87
bo masz zapytanie
Cytat
SELECT SUM(waga) FROM `wyniki`


a z tego pytania wywolac chcesz "$row2['pkt']" exclamation.gif!
Gość
Chodzi o to, że w tabeli mam kolumnę o nazwie pkt.

Pierwsza część kodu wyświetla mi wszystkie wiersze jeden po drugim ta część kodu jest OK.
Wygląda to tak:
pkt
2
3
5
6

Druga część kodu ma zsumować wszystko z kolumny pkt i wyświetlić wynik tego dodawania.
W moim przekonaniu $row2 ma wyświetlić ten wynik.
Czyli powinien wyświetlić się wynik:

16

a nie wyświetla się nic.
ZAczynam się uczyć php i nie wszystko jeszcze łapię.
help_mee
  1. <table border=1 bordercolor=red><tr><td>
  2. <?
  3. $result = mysql_query('SELECT * FROM `wyniki`');
  4. while($row = mysql_fetch_array($result))
  5. { echo '<tr><td>'.$row['pkt'].'</td></tr>';
  6. $suma = $suma+$row['pkt'];
  7. }
  8. echo '<tr><td>Razem:'.$suma.'</td></tr>';
  9. ?></td></tr></table><br>


po co ma wysyłać kolejne zapytanie sql jak można wykorzystać istniejącą pętle?
Gość
Bardzo dziękuję.
Rzeczywiście działa.

Mam jeszcze prośbę o dodatkowe wyjaśnienie:
Nie rozumiem tego fragmentu kodu:

$suma = $suma+$row['pkt'];


Druga sprawa:

Chciałbym się również dowiedzieć jak zrobić to samo przy użyciu "sum"
Dlaczego nie wyświetla się to po wpisaniu kodu, który podałem na początku?
help_mee
Cytat(Gość @ 11.09.2008, 18:44:27 ) *
Mam jeszcze prośbę o dodatkowe wyjaśnienie:
Nie rozumiem tego fragmentu kodu:
$suma = $suma+$row['pkt'];

w pętli ustawia $sume na $sume + aktualny wynik...


Cytat
Druga sprawa:

Chciałbym się również dowiedzieć jak zrobić to samo przy użyciu "sum"
Dlaczego nie wyświetla się to po wpisaniu kodu, który podałem na początku?


nie ma takiej potrzeby

pozdr
Gość
Wlczyłem z tym pół nocy i nic:

  1. <table border=1 bordercolor=000080>
  2. <?
  3. $result = mysql_query('SELECT zaw_id,SUM(pkt) FROM zawody_nauka
  4. GROUP BY zaw_id'
  5. );
  6.  
  7. while($row = mysql_fetch_array($result))
  8. { echo '<tr><td>'.$row['zaw_id'].'</td><td> '.$row['pkt'].'</td></tr>';
  9. }
  10.  
  11. ?>
  12. </table>


nazwa tabeli: zawody_nauka
kolumny w tabeli:
zaw_id pkt
0 10
1 8
2 6
0 8
1 5
2 6



Powyższy kod ma wyświetlać:
zaw_id pkt
0 18
1 13
2 12



Natomiast wyświetla tylko:

0
1
2

Gdzie tkwi błąd?
webdice
Pomyśl trochę. Odwołujesz się do pola pkt, więc wyświetla Ci się to pole - logiczne. Musisz stworzyć sobie alias (AS `suma`) dla funkcji SUM.

  1. <table border=1 bordercolor=000080>
  2. <?
  3. $result = mysql_query('SELECT zaw_id,SUM(pkt) AS `suma` FROM zawody_nauka
  4. GROUP BY zaw_id'
  5. );
  6.  
  7. while($row = mysql_fetch_array($result))
  8. { echo '<tr><td>'.$row['zaw_id'].'</td><td> '.$row['suma'].'</td></tr>';
  9. }
  10.  
  11. ?>
  12. </table>
Gość
Dziękuję bardzo za pomoc.
Uczę się dopiero PHP i po przerobieniu podstaw, robię krok po kroku wszystko, co jest związane z tabelami.
Mam w tej chwili dwie tabelę, które połączyłem.
  1. <table border=1 bordercolor=000080>
  2. <?
  3.  
  4. $result = mysql_query('SELECT zawodnicy_nauka.imie,pkt,waga
  5. FROM zawodnicy_nauka
  6. INNER JOIN zawody_nauka
  7. ON zawodnicy_nauka.zaw_id=zawody_nauka.zaw_id'
  8.  
  9. );
  10.  
  11.  
  12. while($row = mysql_fetch_array($result))
  13. { echo '<tr><td>'.$row['imie'].'</td><td> '.$row['waga'].' </td><td>'.$row['pkt'].' </td><td>'.$row['zaw_id'].' </td><td>'.$row['miejsce'].'</td></tr>';}
  14.  
  15. ?>
  16. </table>


W powyższej tabeli wszystko jest OK


Mam też drugą, którą pomogliście mi zrobić:

  1. <table border=1 bordercolor=000080>
  2. <?
  3. $result = mysql_query('SELECT zaw_id,SUM(waga) AS `waga`, SUM(pkt) AS `pkt` FROM zawody_nauka
  4. GROUP BY zaw_id'
  5. );
  6.  
  7. while($row = mysql_fetch_array($result))
  8. { echo '<tr><td>'.$row['zaw_id'].'</td><td> '.$row['waga'].'</td><td> '.$row['pkt'].'</td></tr>';
  9. }
  10.  
  11. ?>
  12. </table>



Tutaj też wszystko jest OK.




Teraz problem:


Po podstawieniu części kodu z drugiej tabeli do pierwszej coś jest nie tak i nic się nie wyświetla.




  1. <table border=1 bordercolor=000080>
  2. <?
  3.  
  4. $result = mysql_query('SELECT zawodnicy_nauka.imie,SUM(waga) AS `waga`, SUM(pkt) AS `pkt`
  5. FROM zawodnicy_nauka
  6. INNER JOIN zawody_nauka
  7. ON zawodnicy_nauka.zaw_id=zawody_nauka.zaw_id'
  8.  
  9. );
  10.  
  11.  
  12. while($row = mysql_fetch_array($result))
  13. { echo '<tr><td>'.$row['imie'].'</td><td> '.$row['waga'].' </td><td>'.$row['pkt'].' </td><td>'.$row['zaw_id'].' </td><td>'.$row['miejsce'].'</td></tr>';}
  14.  
  15. ?>
  16. </table>
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.