Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Jak wyświetlić wyniki po zsumowaniu rekordów, Problem z MySQL
-GrubeM-
post
Post #1





Goście







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





Grupa: Zarejestrowani
Postów: 1 012
Pomógł: 109
Dołączył: 26.09.2003
Skąd: nexis.pl

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


W której kolumnie są punkty, bo jakoś nie mogę się ich doszukać?


--------------------
Zend Certified Engineer

Kliknij POMÓGŁ jeśli moja odpowiedź okazała się użyteczna!
Go to the top of the page
+Quote Post
Ciap-Ciak
post
Post #3





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 31.03.2006
Skąd: Muszyna

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


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





Goście







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





Goście







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





Grupa: Zarejestrowani
Postów: 1 012
Pomógł: 109
Dołączył: 26.09.2003
Skąd: nexis.pl

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


  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.


--------------------
Zend Certified Engineer

Kliknij POMÓGŁ jeśli moja odpowiedź okazała się użyteczna!
Go to the top of the page
+Quote Post
-GrubeM-
post
Post #7





Goście







Nieda sie tego jeszcze optymalniej napisac? jednym zapytaniem? Bo na tym mi najbardziej zalezy.
Go to the top of the page
+Quote Post
masel
post
Post #8





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 24.05.2006

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


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
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 Aktualny czas: 20.08.2025 - 09:06