Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]IF mniejszy lub wiekszy
Forum PHP.pl > Forum > Przedszkole
honytowk
Witam, napisałem taki oto kod i wyświetla mi cały czas 20zł a rownowartosc zmiennej budzet wynosi 20000
Moje pytanie gdzie popełniłem błąd?
  1. if($dataaas['budzet'] < 500){
  2. echo"10 PLN";
  3. }elseif($dataaas['budzet'] > 500){
  4. echo"20 PLN";
  5. }elseif($dataaas['budzet'] > 1000){
  6. echo"40 PLN";
  7. }elseif($dataaas['budzet'] > 1500){
  8. echo"60 PLN";
  9. }elseif($dataaas['budzet'] > 2000){
  10. echo"70 PLN";
  11. }elseif($dataaas['budzet'] > 2500){
  12. echo"100 PLN";
  13. }elseif($dataaas['budzet'] > 4000){
  14. echo"150 PLN";
  15. }elseif($dataaas['budzet'] > 6000){
  16. echo"200 PLN";
  17. }elseif($dataaas['budzet'] > 10000){
  18. echo"250 PLN";
  19. }elseif($dataaas['budzet'] > 15000){
  20. echo"400 PLN";
  21. }elseif($dataaas['budzet'] > 20000){
  22. echo"700 PLN";
  23. }elseif($dataaas['budzet'] > 25000){
  24. echo"1000 PLN";
  25. }
wookieb
Logika:
1) Czy 2000 jest mniejsze od 500? nie, ide dalej
2) czy 2000 jest wieksze od 500? tak, spoko robie to co jest w tym warunku.

Odpowiedź? Daj ją sobie sam.
darko
bo 20000 > 500 i łapiesz drugi warunek, to już w tym przypadku lepiej switch i case zastosować
MateuszS
bardziej precyzuj,

  1. elseif($dataaas['budzet']>500 and $dataaas['budzet'] <1000) {
  2. echo 'costam';
  3. }


i analogicznie dalej
b_chmura
Przede wszystkim zainteresuj się funkcją switch() smile.gif

Cytat
bardziej precyzuj,

[PHP]

1.
elseif($dataaas['budzet']>500 and $dataaas['budzet'] <1000) {
2.
echo 'costam';
3.
}

[PHP] pobierz, plaintext



i analogicznie dalej


ewentualnie ify ustaw od największego do najmniejszego smile.gif
Lion_87
Kombinuj dalej... if mniejsze / większe...


@ UP UP UP UP lol....
honytowk
wlasnie mozna jakos ukrucic ten skrypt? jak zastosowac te swith i case?
Lion_87
Cytat
wlasnie mozna jakos ukrucic ten skrypt? jak zastosowac te swith i case?

zawsze też można do słownika zajrzeć...

Jak? tak jak wyżej w linku.
wookieb
  1.  
  2. switch(true)
  3. {
  4.  
  5. case ($budzet<500): echo '10'; break;
  6. case ($budzet<1000): echo '20'; break;
  7.  
  8. itd...
  9.  
  10. }
darko
Może coś w ten deseń:

  1. //$dataaas['budzet'] = 500;
  2. $vals = array(500,500,1000,1500,2000,2500,4000,6000,10000,15000,20000,25000);
  3. $plns = array(10,20,40,60,70,100,150,200,250,400,700,1000);
  4. $hit = -1;
  5. for($i=0;$i<count($vals);$i++) {
  6. if($i!=0) {
  7. if($dataaas['budzet'] > $vals[$i]) {
  8. if($i < count($vals)) {
  9. $hit = $i;
  10. }
  11. else {
  12. $hit = count($vals);
  13. }
  14. }
  15. }
  16. else {
  17. if($dataaas['budzet'] < $vals[$i]) {
  18. $hit = $i;
  19. }
  20. }
  21. }
  22. echo $plns[$hit]." PLN";


ps. problem pojawia się, jeśli $dataaas['budzet'] wynosi równo 500, no ale tak chciałeś przecież sam nie uwzględniasz takiej kwoty
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.