Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]dziwny problem z IF-em
Forum PHP.pl > Forum > Przedszkole
mani
Witam

Mam dość dziwny problem-zagadkę, otóż chciałbym aby po zaznaczeniu kolorowego produktu, na cenę końcową był nakładany rabat 25%, zrobiłem to w ten sposób

  1. <?php
  2. if (!empty($p1czerwony) && !empty($p1fiolet) && !empty($p1niebieski) && !empty($p1zolty) && !empty($p3fiolet) && !empty($p3niebieski) && !empty($p3zielony))
  3. {
  4. $rabat=$cenagl * 0.25;
  5. $cenagl=$cenagl - $rabat;
  6. }
  7. ?>


Za cholerę nie chce działać, dałem zamiast !empty - isset, również nie działa. Po usunięciu tego warunku IF pozostawieniu rabatu - działa bez problemu...

Dla mnie to zagadka zwłaszcza, że linie wyżej znajduje się warunek IF sprawdzający czy jakikolwiek produkt został wybrany i działa!

  1. <?php
  2. if(empty($p1) && empty($p2) && empty($p3) && empty($p1czerwony) && empty($p1fiolet) && empty($p1niebieski) && empty($p1zolty) && empty($p3fiolet) && empty($p3niebieski) && empty($p3zielony)) {
  3. echo'<br> Zamówienie puste...';
  4. }
  5.  
  6. Błagam o pomoc bo już białej gorączki dostaje przez to...
  7. ?>
nospor
raz masz: empty($p1zolty)
a raz: !empty($p1zolty)

Juz na tym poziomie te dwa warunki są inne wiec nic dziwnego ze raz dziala a raz nie....
mani
To jak to rozwiązać? Na górze warunek IF sprawdzający czy coś zostało wybrane zmienić na !isset? nie do końca to rozumiem, przecież to są dwa oddzielne warunki...
nospor
blinksmiley.gif
Napisales:
Cytat
że linie wyżej znajduje się warunek IF sprawdzający czy jakikolwiek produkt został wybrany i działa!

skoro wiec dla ciebie warunek empty($p1zolty) jest warunkiem dzialającym, to daj go do warunku rabatu zamiast !empty($p1zolty)

To chyba ty powinienes wiedziec jakie dla ciebie warunki muszą byc spelnione by sie cos wykonalo a nie my.
mani
Eh myślałem ,że trafiłem na forum w którym można liczyć na pomoc osób dużo lepiej znających PHP,a nie czytać o wywodach, które kompletnie w niczym mi nie pomagają... no cóż...

Cytat
To chyba ty powinienes wiedziec jakie dla ciebie warunki muszą byc spelnione by sie cos wykonalo a nie my


Gdybym nie miał problemu i znał rozwiązanie to bym nie pisał...
nospor
w tym warunku:
if (!empty($p1czerwony) && !empty($p1fiolet) && !empty($p1niebieski) && !empty($p1zolty) && !empty($p3fiolet) && !empty($p3niebieski) && !empty($p3zielony))

pozmieniaj && na ||

Z drugiego twojego ifa powiedzmy ze wnioskuje iz oto wlasnie chodzi

drugi if sprawdza czy wszystkie wartosci są puste. skoro drugi ma byc "rownowazny" pierwszemu to wpierszym ma byc LUB a nie I
bartg
Ja dodam, że:
  1. <?php
  2. $rabat=$cenagl * 0.25;
  3. $cenagl=$cenagl - $rabat;
  4. ?>

Można zamienić na:
  1. <?php
  2. $cenagl=$cenagl *1.25;
  3. ?>
megawebmaster
bartg - tutaj się mylisz 1 - 0,25 =/= 1,25 tongue.gif
mani
dziękuję działa
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.