Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MySQL] Pętła w pętli głupieje i ja też
Frugo75
post
Post #1





Grupa: Zarejestrowani
Postów: 116
Pomógł: 0
Dołączył: 13.06.2013

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


Jeszcze raz proszę o pomoc.

Chce dodac punkty zawodnikom za udzial w meczu zalezy od wyniku.
W tabeli mecze mam oczywiscie wszystkie dane w tym najwazniejsze punkty

Pozniej z tabeli lineup pobieram dane zawodnikow, ktorzy byli w skladzie w tych meczach. I tym chce przyznac punkty zalezne od wyniku.

No i cos miesza mi sie z petlami, bo albo wyswietla wszystkich zawodnikow, ale jeden mecz, albo ...inne glupoty.

oto kod:

  1.  
  2. $result = mysql_query("SELECT * FROM matches");
  3.  
  4. while ($mecz = mysql_fetch_assoc($result)) {
  5.  
  6. $host_id = $mecz['host_id'];
  7. $guest_id = $mecz['guest_id'];
  8. $host = $mecz['host'];
  9. $guest = $mecz['guest'];
  10. $score_host = $mecz['score_host'];
  11. $score_guest = $mecz['score_guest'];
  12.  
  13.  
  14.  
  15. if ($score_guest == $score_host) {
  16.  
  17. $points_host = '1';
  18. $points_guest = '1';
  19. }
  20.  
  21. if ($score_guest > $score_host) {
  22.  
  23. $points_host = '0';
  24. $points_guest = '3';
  25.  
  26. }
  27.  
  28. if ($score_guest < $score_host) {
  29.  
  30. $points_host = '3';
  31. $points_guest = '0';
  32.  
  33. }
  34.  
  35.  
  36.  
  37.  
  38.  
  39. //lineup
  40.  
  41. $result2 = mysql_query("SELECT * FROM lineup WHERE round_id = 1");
  42.  
  43. while ($line = mysql_fetch_assoc($result2)) {
  44.  
  45. $player_id = $line['player_id'];
  46. $round_id = $line['round_id'];
  47.  
  48.  
  49. echo $points_host." - "."-".$player_id."<hr>";
  50.  
  51. }
  52.  
  53.  
  54.  
  55. if (isset($points_host)) {
  56.  
  57.  
  58. $result3 = mysql_query("INSERT INTO lineup_points (points, round_id, player_id) VALUES ('$points_host', '$round_id', '$player_id') ") or die(mysql_error());
  59.  
  60. }
  61. else {
  62. $result4 = mysql_query("INSERT INTO lineup_points (points, points, round_id, player_id) VALUES ('$points_guest',, '$round_id', '$player_id') ") or die(mysql_error());
  63. }
  64.  
  65.  
  66. }
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
freemp3
post
Post #2





Grupa: Zarejestrowani
Postów: 467
Pomógł: 77
Dołączył: 6.09.2008
Skąd: Miechów / Kraków

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


Wyświetla 4 razy listę zawodników ponieważ masz 4 mecze.

Linia 49: wyświetlasz zmienną $points_host
Linia 55: sprawdzasz czy istnieje

Gdzie tu logika? To tak jakbyś najpierw wsiadał do samochodu, a później sprawdzał czy w ogóle jest w garażu.
Go to the top of the page
+Quote Post
Frugo75
post
Post #3





Grupa: Zarejestrowani
Postów: 116
Pomógł: 0
Dołączył: 13.06.2013

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


Cytat(freemp3 @ 17.03.2014, 13:33:32 ) *
Wyświetla 4 razy listę zawodników ponieważ masz 4 mecze.

Linia 49: wyświetlasz zmienną $points_host
Linia 55: sprawdzasz czy istnieje

Gdzie tu logika? To tak jakbyś najpierw wsiadał do samochodu, a później sprawdzał czy w ogóle jest w garażu.


No i nie działa. Zrobiłem jak mowiłeś i na razie chce wstawic tylko punkty zawodników gospodarzy $points_host.
Insert jest w wewnetrznej petli i dalej 4 x po liczba zawodnikow i kazdemu dopisane punkty 1,1,3,1. A powinien dopisac 3 tylko tym co rzeczywiscie grali w zwycieskim meczu.

Kod:
  1. $result = mysql_query("SELECT * FROM matches");
  2.  
  3. while ($mecz = mysql_fetch_assoc($result)) {
  4.  
  5. $host_id = $mecz['host_id'];
  6. $guest_id = $mecz['guest_id'];
  7. $host = $mecz['host'];
  8. $guest = $mecz['guest'];
  9. $score_host = $mecz['score_host'];
  10. $score_guest = $mecz['score_guest'];
  11.  
  12.  
  13.  
  14. if ($score_guest == $score_host) {
  15.  
  16. $points_host = '1';
  17. $points_guest = '1';
  18. }
  19.  
  20. if ($score_guest > $score_host) {
  21.  
  22. $points_host = '0';
  23. $points_guest = '3';
  24.  
  25. }
  26.  
  27. if ($score_guest < $score_host) {
  28.  
  29. $points_host = '3';
  30. $points_guest = '0';
  31.  
  32. }
  33.  
  34.  
  35.  
  36. //lineup
  37.  
  38. $result2 = mysql_query("SELECT * FROM lineup WHERE round_id = 1");
  39.  
  40. while ($line = mysql_fetch_assoc($result2)) {
  41.  
  42. $player_id = $line['player_id'];
  43. $round_id = $line['round_id'];
  44.  
  45.  
  46. $result3 = mysql_query("INSERT INTO lineup_points (points, round_id, player_id) VALUES ('$points_host', '$round_id', '$player_id') ") or die(mysql_error());
  47.  
  48.  
  49. }
  50.  
  51. }
  52.  
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 8.10.2025 - 09:20