Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Problem z if else elseif
Forum PHP.pl > Forum > Przedszkole
nikestylex7
Tak jak w temacie mam problem gdyż dane else nie działa. .... (tutaj)

  1. $lvl = mysql_fetch_row(mysql_query("SELECT lvl FROM user WHERE user='$user'"));
  2. $ile = ($lvl[0] * 10) * 2;
  3. if(isSet($_POST['odpocznij'])){
  4. $godziny = (int)round($_POST['godziny'], '0');
  5. if($godziny > 8){
  6. $godziny = 8;
  7. }
  8. elseif($godziny < 1){
  9. $godziny = 1;
  10. }
  11. ............................................................... tutaj
  12. else {
  13. $zaplata = $ile * $godziny;
  14. $kasa = mysql_fetch_row(mysql_query("SELECT kasa FROM user WHERE user='$user'"));
  15. if($zaplata > $kasa['kasa']){
  16. echo "Masz za mało kasy na koncie.";
  17. }
  18. }
  19. .................................................................tutaj
  20. $zaplata = $ile * $godziny;
  21. $konczy = mktime() + (($godziny * 60) * 60);
  22. $kasa = mysql_fetch_row(mysql_query("SELECT kasa FROM user WHERE user='$user'"));
  23. mysql_query("UPDATE user SET konczy2='$konczy', godzin2='".$godziny."', zaplata2='$zaplata' WHERE user='$user'");
  24. header("Location: lokal.php");
  25.  
  26. }
sazian
no u mnie działa
chyba że czegoś nie zrozumiałem
opisz dokładniej

edit:
ten elese jest w ogóle nie potrzebny
to co jest w jego wnętrzu wstaw zamiast linijki 20
Pilsener
  1. if($godziny > 8){
  2. $godziny = 8;
  3. }
  4. elseif($godziny < 1){
  5. $godziny = 1;
  6. }
- po co tworzyć takie struktury? Radzę w ogóle nie używać elseifa, bo kod staje się mało czytelny. Tak samo radzę nie używać echo, tylko pracować na zmiennych, zmienne można dowolnie preparować a to co wysłałeś do browsera nie.

Jeśli potrzebujemy podzielić kod w pliku na funkcjonalne części lepiej użyć instrukcji switch.

A przy skomplikowanych i długich warunkach (np. chcemy podzielić partię produkcyjną na 5 przedziałów wg jakości od - do dla każdego przedziału) lepiej użyć tablicy.
nikestylex7
Działa lecz gdy na koncie użytkownika jest 5 euro a musi zapłacić 30euro to i tak leci dalej a pozniej pokazuje w banku kase na - bo odjelo sobie to. Więc tak jak by ten warunek w ogole nie działał .
sazian
a jak chcesz niby użyć switch'a w tym przypadku questionmark.gif
tablica też raczej odpada
więc to jedyne sensowne rozwiązanie

edit:
bo dajesz tylko komunikat
  1. if($zaplata > $kasa['kasa']){
  2. echo "Masz za mało kasy na koncie.";
  3. }

daj else i dopiero po nim update
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.