Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MYSQL] zliczanie sum
pkania
post
Post #1





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 26.12.2006

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


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
Powód edycji: Poprawiłem tytuł tematu. /webdice
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 12)
strife
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 605
Pomógł: 96
Dołączył: 22.10.2004
Skąd: UK

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


Takim zapytaniem policzysz łatwo ile jest tego razem (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

  1. SELECT SUM(pole) AS suma FROM tabela
Go to the top of the page
+Quote Post
pkania
post
Post #3





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 26.12.2006

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


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
Go to the top of the page
+Quote Post
Cienki1980
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 1 590
Pomógł: 40
Dołączył: 11.01.2007
Skąd: Centrum

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


Echh no trochę pomyśleć:
  1. SELECT sum(pole1),sum(pole2) ... FROM tabela
Go to the top of the page
+Quote Post
-Gość-
post
Post #5





Goście







  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?
Go to the top of the page
+Quote Post
Lion_87
post
Post #6





Grupa: Zarejestrowani
Postów: 850
Pomógł: 120
Dołączył: 15.02.2007
Skąd: Łódź

Ostrzeżenie: (10%)
X----


bo masz zapytanie
Cytat
SELECT SUM(waga) FROM `wyniki`


a z tego pytania wywolac chcesz "$row2['pkt']" (IMG:http://forum.php.pl/style_emoticons/default/exclamation.gif) !
Go to the top of the page
+Quote Post
-Gość-
post
Post #7





Goście







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ę.
Go to the top of the page
+Quote Post
help_mee
post
Post #8





Grupa: Zarejestrowani
Postów: 244
Pomógł: 21
Dołączył: 10.02.2008
Skąd: Załęcze Wielkie

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


  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 to the top of the page
+Quote Post
-Gość-
post
Post #9





Goście







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?
Go to the top of the page
+Quote Post
help_mee
post
Post #10





Grupa: Zarejestrowani
Postów: 244
Pomógł: 21
Dołączył: 10.02.2008
Skąd: Załęcze Wielkie

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


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 to the top of the page
+Quote Post
-Gość-
post
Post #11





Goście







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?
Go to the top of the page
+Quote Post
webdice
post
Post #12


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




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 to the top of the page
+Quote Post
-Gość-
post
Post #13





Goście







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>
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 13:50