Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Mysql - sumowanie rekordów
Forum PHP.pl > Forum > Bazy danych > MySQL
djiras1
Robie strone i sie zatrzymalem, bo mam klopot i szukam kogos kto moglby mi pomoc. Chodzi o kod mysql. Mam takie tabele:

teams
id, nazwa, liga

punkty
id, id_druzyny, pkt

No i tak:
Chce wyswietlic w kolejnosci malejacej druzyny z tej samej ligi, ktore maja najwiecej punktow, czyli podsumowac punkty (pkt) gdzie id_druzyny=id z tabeli teams.

oto kod:


  1. $i=1;
  2.  
  3. $druzyny=mysql_query("SELECT * FROM teams WHERE liga=1");
  4. while($dr=mysql_fetch_array($druzyny)) {
  5.  
  6. $punkty=mysql_query("SELECT SUM(pkt) AS suma FROM punkty WHERE id_druzyny='$dr[id]' ORDER BY suma DESC LIMIT 10");
  7. $p=mysql_fetch_array($punkty);
  8.  
  9. IF($p[suma]==NULL) { $p[suma]=0; }
  10. else { $p[suma]=$p[suma]; }
  11.  
  12. $a=$i++;
  13. echo '<tr><td class="wiersz">'.$a.'</td><td class="wiersz"><a href="druzyna.php?id='.$dr[id].'">'.$dr[nazwa].'</a></td><td class="wiersz">'.$p[suma].'</td></tr>';
  14.  
  15. }


Wyswietla ale wg id z tabeli teams a nie wg ilosci zsumowanych punktow. Nie wiem jak przestawic to zapytanie zeby dzialalo.
Wicepsik
  1. SELECT teams.nazwa, teams.liga, SUM(punkty.pkt) AS suma FROM teams, punkty WHERE teams.id = punkty.id_druzyny GROUP BY teams.liga ORDER BY suma DESC LIMIT 10


Przeczytaj ten artykuł http://aylard.viawww.pl/2009/01/01/mysql-relacje/


  1. IF($p[suma]==NULL) { $p[suma]=0; }
  2. else { $p[suma]=$p[suma]; }

Po co ten kod ?
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.