Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Problem z if else elseif
nikestylex7
post
Post #1





Grupa: Zarejestrowani
Postów: 386
Pomógł: 7
Dołączył: 22.04.2010
Skąd: Ziemia

Ostrzeżenie: (20%)
X----


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. }
Go to the top of the page
+Quote Post
sazian
post
Post #2





Grupa: Zarejestrowani
Postów: 1 045
Pomógł: 141
Dołączył: 19.09.2006
Skąd: B-tów

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


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

Ten post edytował sazian 30.09.2010, 19:33:38
Go to the top of the page
+Quote Post
Pilsener
post
Post #3





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

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


  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.
Go to the top of the page
+Quote Post
nikestylex7
post
Post #4





Grupa: Zarejestrowani
Postów: 386
Pomógł: 7
Dołączył: 22.04.2010
Skąd: Ziemia

Ostrzeżenie: (20%)
X----


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ł .
Go to the top of the page
+Quote Post
sazian
post
Post #5





Grupa: Zarejestrowani
Postów: 1 045
Pomógł: 141
Dołączył: 19.09.2006
Skąd: B-tów

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


a jak chcesz niby użyć switch'a w tym przypadku (IMG:style_emoticons/default/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

Ten post edytował sazian 30.09.2010, 22:02:15
Go to the top of the page
+Quote Post

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: 22.08.2025 - 13:29