Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Tworzenie sumy punktów dla każdego gracza
Forum PHP.pl > Forum > Przedszkole
Androsset
Mam dwie tabele Jedna to gracze druga mecze.
Tabela gracze:

[---id----imie----]
[---1--- arek---
[---2----michal---
[---3---kuba---

Druga tabela to mecze:

[---id---gospodarz---przeciwnik---punkty1---punkty2---]
[---1--------2-------------3------------12----------14
[---2--------1-------------2-------------8-----------1
[---3--------3-------------1-------------10----------10

Celem jest zrobienie rankingu graczy. Czyli muszę policzyć sumę punktów dla każdego gracza. Punkty1 to punkty gospodarza, a punkty2 to punkty przeciwnika.

Z pierwszej tabeli pobieram liczbe wierszy aby wiedzieć ile jest graczy. Potem liczbe punkty dla każdego gracza. Mój kod wygląda na razie tak:
  1. echo <<< TRESC
  2. <table width="500" cellpadding="0" cellspacing="0" border="1">
  3. echo "<tr><th>imie</th><th>punkty</th></tr>";
  4. TRESC;
  5. $sql1 = "SELECT * FROM gracze";
  6. $sql2 = "SELECT * FROM fow_data";
  7.  
  8. $result1 = mysqli_query($conn,$sql1)or die(mysqli_error($conn));
  9. $result2 = mysqli_query($conn,$sql2)or die(mysqli_error($conn));
  10.  
  11. for ($i=1; $i<$result2->num_rows; $i++)
  12. {
  13. $suma=0;
  14. while($row = mysqli_fetch_array($result2))
  15. {
  16. $gospodarz = $row['gospodarz'];
  17. $przeciwnik = $row['przeciwnik'];
  18. $punkty1 = $row['punkty1'];
  19. $punkty2 = $row['punkty2'];
  20. if($gospodarz == $i)
  21. {
  22. $suma = $suma + $punkty1;
  23. } elseif ($przeciwnik == $i)
  24. {
  25. $suma = $suma + $punkty2;
  26. }
  27.  
  28. }
  29. echo "<tr><td>".$i."</td><td>".$suma."</td></tr>";
  30.  
  31. }
  32.  
  33.  
  34. $conn->close();


Nie wiem jak poprawnie wykonać to w tych dwóch pętlach. Chce uzyskać taki efekt końcowy:

[---imie---punkty---]
[------1------18-----
[------2------13-----
[------3------37-----

Liczy poprawnie przy pierwszym iteracji. potem pokazuje że 2 to 0 późnej nie ma nic.
trueblue
O to samo już pytałeś tu: Temat: MySQLPHPDodawanie wartosci pol bazy do siebie
Możesz to wykonać jednym zapytaniem SQL.
Androsset
Zapytanie z tamtego tematu nie działa, więc muszę szukać innego rozwiązania
trueblue
A to ciekawe.
http://sqlfiddle.com/#!9/0ebb50/1
viking
I dokładnie to samo dla obecnego http://sqlfiddle.com/#!9/789c8a/1
Androsset
To dziwne. Spróbowałem jeszcze raz i tym razem działa. Także dzięki za pomoc.
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.