Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jak wyświetlić wyniki po zsumowaniu rekordów
Forum PHP.pl > Forum > Przedszkole
GrubeM
Witam szanownych forumowiczów,
mam następujący problem. Mam w Bazie 3 tabele

*rozgrywki_druzyny // zawiera wszystkie druzyny
-id
-nazwa_druzyny

*rozgrywki_turnieje // zawiera wszystkie turnije np: Szczecin; Poznań...
-id
-data
-miejsce

*rozgrywki_druzyny_wpisy // W tej tabeli przypisane sa punkty w danym turnieju do danej druzyny
-id
-turniej_id
-druzyna_id

i Jak teraz napisać zapytanie żeby wypluć druzyny od tej co ma najwięcej punktów do tej co ma ich najmniej. Chciał bym zeby wygladalo to tak:

Druzyna AAA 55 p.
Druzyna 123 34 p.
...
Druzyna XXX 0p.

Bede bardzo wdziecny za odpowiedz bo troche mnie to meczy.
nexis
W której kolumnie są punkty, bo jakoś nie mogę się ich doszukać?
Ciap-Ciak
  1. <?php
  2. $query="SELECT * FROM `rozgrywki_druzyny_wpisy` ORDER BY `XXX` DESC";
  3. $result=mysql_query($query);
  4.  
  5. while ($row=mysql_fetch_array($result)) 
  6. { 
  7. echo("Drużyna ".$row['YYY']." ".$row['XXX']."<br />"; 
  8. }
  9. ?>

gdzie XXX to tabela z ptk druzyny i YYY to nazwa druzyny
GrubeM
Faktycznie zapomnialem o podaniu punktow sa one w 3 tabeli. Wyglada to tak:

*rozgrywki_druzyny // zawiera wszystkie druzyny
-id
-nazwa_druzyny

*rozgrywki_turnieje // zawiera wszystkie turnije np: Szczecin; Poznań...
-id
-data
-miejsce

*rozgrywki_druzyny_wpisy // W tej tabeli przypisane sa punkty w danym turnieju do danej druzyny
-id
-turniej_id
-druzyna_id
-punkty
GrubeM
Ciap-Ciak nie o to chodzi. Bo to co proponujesz wyswietla wyniki tylko z jednej rozgrywki a tu chodzi o całość czyli o sezon a nie runde.
nexis
  1. <?php
  2. require 'config.php'; // plik, w ktorym laczysz sie z baza danych
  3.  
  4. $query = 'SELECT id FROM rozgrywki_druzyny';
  5. $query = mysql_query($query);
  6.  
  7. $array = array();
  8.  
  9. while ($result = mysql_fetch_array($query)) {
  10. $squery = "SELECT SUM(punkty) FROM rozgrywki_druzyny_wpisy WHERE druzyna_id = '$result[0]'";
  11. $squery = mysql_query($squery);
  12. $sresult = mysql_fetch_array($squery);
  13. $array[$result[0]] = $sresult[0];
  14. }
  15. print_r ($array);
  16. ?>


Teraz pozostaje już tylko posortowanie tej tablicy za pomocą array_multisort" title="Zobacz w manualu php" target="_manual.
GrubeM
Nieda sie tego jeszcze optymalniej napisac? jednym zapytaniem? Bo na tym mi najbardziej zalezy.
masel
W jednym zapytaniu to tak:

  1. SELECT nazwa_druzyny, SUM(punkty)
  2. FROM rozgrywki_druzyny, rozgrywki_druzyny_wpisy, rozgrywki_turnieje
  3. WHERE rozgrywki_druzyny_wpisy.druzyna_ID=rozgrywki_druzyna.druzyna_ID AND rozgrywki_druzyny_wpisy.turnieje_ID=rozgrywki_turnieje.turnieje_ID
  4. GROUP BY rozgrywki_druzyny.druzyna_ID


Dostaniesz nazwę i sumę punktów
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.