Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] Tworzenie sumy punktów dla każdego gracza
Androsset
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 24.08.2016

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


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.

Ten post edytował Androsset 29.08.2016, 16:05:33
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
trueblue
post
Post #2





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


O to samo już pytałeś tu: Temat: MySQLPHPDodawanie wartosci pol bazy do siebie
Możesz to wykonać jednym zapytaniem SQL.


--------------------
Go to the top of the page
+Quote Post
Androsset
post
Post #3





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 24.08.2016

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


Zapytanie z tamtego tematu nie działa, więc muszę szukać innego rozwiązania
Go to the top of the page
+Quote Post
trueblue
post
Post #4





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


A to ciekawe.
http://sqlfiddle.com/#!9/0ebb50/1


--------------------
Go to the top of the page
+Quote Post
viking
post
Post #5





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


I dokładnie to samo dla obecnego http://sqlfiddle.com/#!9/789c8a/1


--------------------
Go to the top of the page
+Quote Post
Androsset
post
Post #6





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 24.08.2016

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


To dziwne. Spróbowałem jeszcze raz i tym razem działa. Także dzięki za pomoc.

Ten post edytował Androsset 29.08.2016, 16:39:37
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 - 05:59