Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php/MySQL] Dodaje 3, ale 1 już nie.
Forum PHP.pl > Forum > Przedszkole
Koniczynka
Witam. Mam problem ze skryptem, który dodawałby punkty do tabeli w bazie danych. Nie do końca działa, a nie wiem, co może być nie tak. Otóż, dodaje wartość 3, ale 1 już nie.

To znaczy,kiedy wpisuję jako wynik 1:1, to warunek $gole_gospodarze == $gole_goscie nie zostaje spełniony i w bazie nie pojawia się wartość o 1 większa - nic się nie zmienia. Jeżeli zaś któraś z drużyn wygrała, to do bazy zapisywana jest wartość o 3 większa - działa prawidłowo.

  1. <?php
  2. if ($gole_gospodarze == $gole_goscie) {
  3.  $punkty_tabela += 1;
  4.  
  5.  
  6. mysql_query ("UPDATE tabela SET punkty_tabela = '$punkty_tabela' 
  7. WHERE login_tabela = '$gospodarze' )
  8.  
  9. "); }
  10.  
  11. elseif ($gole_gospodarze == $gole_goscie) {
  12.  $punkty_tabela2 += 1;
  13.  
  14.  
  15. mysql_query ("UPDATE tabela SET punkty_tabela = '$punkty_tabela2' 
  16. WHERE login_tabela = '$goscie' )
  17.  
  18. "); 
  19.  
  20. } elseif ($gole_goscie > $gole_gospodarze) {
  21. $punkty_tabela2 += 3;
  22.  
  23.  
  24. mysql_query ("UPDATE tabela SET punkty_tabela = '$punkty_tabela2' 
  25. WHERE login_tabela = '$goscie'
  26.  
  27. "); 
  28.  
  29.  
  30. } elseif ($gole_gospodarze > $gole_goscie) {
  31. $punkty_tabela += 3;
  32. mysql_query ("UPDATE tabela SET punkty_tabela = '$punkty_tabela' 
  33. WHERE login_tabela = '$gospodarze'
  34.  
  35. "); 
  36. }
  37.  
  38.  
  39. }
  40. ?>


Jeżeli ktoś mógłby wskazać mój błąd, to byłbym wdzięczny.
nospor
Kod
<?php
if ($gole_gospodarze == $gole_goscie) {
 $punkty_tabela += 1;


mysql_query ("UPDATE tabela SET punkty_tabela = '$punkty_tabela' 
WHERE login_tabela = '$gospodarze' )

"); }

elseif ($gole_gospodarze == $gole_goscie) {
 $punkty_tabela2 += 1;


mysql_query ("UPDATE tabela SET punkty_tabela = '$punkty_tabela2' 
WHERE login_tabela = '$goscie' )

"); 

}
?>
blinksmiley.gif
No to ja ci teraz podam zamiennik tego kodu w skrocie:

  1. <?php
  2. $x=1; $y=1;
  3. if ($x==$y) echo 'x=1';
  4. elseif($x==$y) echo 'y=1';
  5. ?>
No to se go uruchom i zobacz czy dostaniesz kiedys cos, ze y=1 smile.gif
Ludvik
  1. <?php
  2. if ($gole_gospodarze == $gole_goscie) {
  3. $punkty_tabela += 1;
  4. mysql_query ("UPDATE tabela SET punkty_tabela = '$punkty_tabela' 
  5. WHERE login_tabela = '$gospodarze' )"); 
  6. } elseif ($gole_gospodarze == $gole_goscie) {
  7. // to się nie wykona, warunek jest taki sam...
  8. $punkty_tabela2 += 1;
  9. mysql_query ("UPDATE tabela SET punkty_tabela = '$punkty_tabela2' 
  10. WHERE login_tabela = '$goscie')"); 
  11. }
  12. ?>


  1. <?php
  2. if ($gole_gospodarze == $gole_goscie) {
  3. $punkty_tabela += 1;
  4. mysql_query ("UPDATE tabela SET punkty_tabela = '$punkty_tabela' 
  5. WHERE login_tabela = '$gospodarze' )");
  6.  $punkty_tabela2 += 1;
  7. mysql_query ("UPDATE tabela SET punkty_tabela = '$punkty_tabela2' 
  8. WHERE login_tabela = '$goscie')"); 
  9. }
  10. ?>
Koniczynka
Ufffff....... poradziłem sobie. Bardzo dziękuję wam za pomoc. Fakt, trochę się zagubiłem w tych warunkach, ale nie wiedziałem, co zrobić z tym ==. Także, dziękuję za lekcję podstaw.

Dostosowałem się do solucji Ludvika , tyle, że musiałem zmodyfikować +=1 na += 0.5, bo w tym pierwszym wypadku każdej drużynie dodawało 2, a nie 1 punkt.

EDIT: Błąd zrobiłem z tą modyfikacją - po umieszczeniu if [zmieniony na elseif] na końcu pętli zostawiłem 1 i działało.
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.