Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]If(a>b ale a<c){....[rozwiązany]
Forum PHP.pl > Forum > Przedszkole
miccom
Witam serdecznie.
Proszę o pomoc bo mam zaćmienie pomroczne i dumam już długo.
Jak zapisać taki warunek:

if(a>b ALE a<c){....}

Bo znam "albo" (OR) i "i" (AND) "lub" (if) ale nie wiem jak jest w ale....


Proszę o pomoc.
bliitz
tak samo jak AND
  1. <?php
  2. if( a > b && a < c ){}
  3. ?>


warunek spełniony gdy a > b i a < c
RafaelX
a poco ci tam ALE, AND nie wystarczy questionmark.gif
kkuba
Moze po prostu &&? O.o
miccom
ok. A jak rozwiązać takie coś.

  1. <?php
  2. if($wynik1>$wynika){
  3. echo wynik1-TAK
  4. }else{
  5. echo wynik1- NIE
  6. }
  7.  
  8. if($wynik2>$wynika){
  9.  
  10. echo wynik 2-TAK
  11. }else{
  12. echo wynik 2-NIE
  13. }
  14.  
  15. if($wynik3>wynika){
  16.  echo wynik 3-TAK
  17. }else{
  18.  echo wynik 3-NIE
  19. }
  20. if(itd itp){.....
  21. ?>

chodzi mi o to, aby jeśli się nie spełni warunek, wykonuję instrukcje po else, a jeśli się spełni to zaraz po
if(){ a następne ify już się nie wykonają.
Myślałem coś na switch, ale nie umiem wykombinować jak to zrobić.
Prosze o pomoc.
ostrylg
Dużo tam jeszcze masz tych ifów ?

Może takie coś rozwiąże sprawę :
  1. <?php
  2. if($wynik1>$wynika){
  3. echo wynik1-TAK
  4. }else{
  5. echo wynik1- NIE
  6.  
  7. if($wynik2>$wynika){
  8.  
  9. echo wynik 2-TAK
  10. }else{
  11. echo wynik 2-NIE
  12. }
  13.  
  14. if($wynik3>wynika){
  15. echo wynik 3-TAK
  16. }else{
  17. echo wynik 3-NIE
  18. }
  19.  
  20.  
  21. }
  22.  
  23.  
  24. ?>
Mlodycompany
z tego co mi sie wydaje to Twoje echo wyświetla stałę a chyba chodzi i zwykły tekst więc proponuje zrobić ... echo "tekst"; ...
vokiel
Albo tak jak ostrylg napisał: zagnieżdzenie ifów w sobie, albo tak:
  1. <?php
  2. if($wynik1>$wynika){
  3. echo wynik1-TAK
  4. // wybierz sobie
  5. return true;
  6. exit();
  7. }else{
  8. echo wynik1- NIE
  9. return true;
  10. exit();
  11. }
  12.  
  13. if($wynik2>$wynika){
  14. echo wynik 2-TAK
  15. return true;
  16. exit();
  17. }else{
  18. echo wynik 2-NIE
  19. return true;
  20. exit();
  21. }
  22. if($wynik3>wynika){
  23. echo wynik 3-TAK
  24. return true;
  25. exit();
  26. }else{
  27. echo wynik 3-NIE
  28. return true;
  29. exit();
  30. }
  31. ?>
michalg
Jeśli dobrze rozumiem, chcesz coś wykonać dla pierwszego wyniku większego od zmiennej $wynika?

To może tak?

  1. <?php
  2. $wynika = 3;
  3. $tablica = array("wynik1"=>2, "wynik2"=>4, "wynik3"=>5);
  4.  
  5. foreach($tablica as $k => $v) {
  6.    if ($v > $wynika) {
  7.          echo $k." większe od ".$wynika." \n";
  8.          break;
  9.    }
  10.    echo $k." nie jest większe od ".$wynika." sprawdzam dalej \n";
  11. }
  12. ?>
miccom
Witam.
Mam takie coś- dokładnie.
  1. <?php
  2. if($wynik_at11>$pancerz_obrony){
  3. $wynik_at11=round($wynik_at11,1);
  4.  $wynik_obr11=round($wynik_obr11,1);
  5.  $wynik_at1=round($pancerz_obrony-$wynik_at11,1);
  6.  $wynik_obr1=round($pancerz_ataku-$wynik_obr11,1);
  7. RUNDA PIERWSZA!<br />
  8. Po dwukrotnej wymianie ognia jednostka atakująca działając z mocą $wynik_at11 miażdży obronę stacjonujących jednostek na polu $koordfin!<br />
  9. Podczas zaciekłej obrony broniąca się jednostka zadała straty atakującemu w ilości $wynik_obr11.<br />
  10.  Jednostka atakująca ma obecnie $wynik_obr1 punktów obrony a jednostki broniacej się $wynik_at1.<br />
  11.  Podczas ataku jednostka atakujaca zdobyła $doswatak punktów doświadczenia!<br />";  
  12.  
  13. }else{
  14. RUNDA PIERWSZA!<br />
  15. Po wymianie ognia jednostka atakująca działając z mocą $wynik_at11  nie może zniszczyć obrony stacjonujących jednostek na polu $koordfin!<br />
  16. Podczas zaciekłej obrony broniąca się jednostka zadała straty atakującemu w ilości $wynik_obr11.<br />
  17.  Jednostka atakująca ma obecnie $wynik_obr1 punktów obrony a jednostki broniacej się $wynik_at1.<br />
  18.  Podczas ataku jednostka atakujaca zdobyła $doswatak punktów doświadczenia!<br />";  
  19. }
  20. $wynik_at11=round($wynik_at11,1);
  21. if($wynik_at12>$pancerz_obrony && $wynik_at11<$pancerz_obrony){
  22. $wynik_at12=round($wynik_at12,1);
  23.  $wynik_obr12=round($wynik_obr12,1);
  24.  $swynik_at2=$pancerz_obrony-$wynik_at12;
  25.  $swynik_obr2=$pancerz_ataku-$wynik_obr12;
  26. $wynik_at12=round($wynik_at12,1);<br />
  27.  $wynik_obr12=round($wynik_obr12,1);<br />
  28.  $wynik_at2=$pancerz_obrony-$wynik_at12;<br />
  29.  $wynik_obr2=$pancerz_ataku-$wynik_obr12;<br />
  30. RUNDA DRUGA!<br />
  31. Po  wymianie ognia jednostka atakująca działając z mocą $wynik_at12 miażdży obronę stacjonujących jednostek na polu $koordfin!<br />
  32. Podczas zaciekłej obrony broniąca się jednostka zadała straty atakującemu w ilości $wynik_obr12.<br />
  33.  Jednostka atakująca ma obecnie $wynik_obr2 punktów obrony a jednostki broniacej się $wynik_at2.<br />
  34.  Podczas ataku jednostka atakujaca zdobyła $doswatak punktów doświadczenia!<br />";
  35. }else{
  36. $wynik_at12=round($wynik_at12,1);
  37.  $wynik_obr12=round($wynik_obr12,1);
  38.  $wynik_at2=$pancerz_obrony-$wynik_at12;
  39.  $wynik_obr2=$pancerz_ataku-$wynik_obr12;
  40. $wynik_at12=round($wynik_at12,1);<br />
  41.  $wynik_obr12=round($wynik_obr12,1);<br />
  42.  $wynik_at2=$pancerz_obrony-$wynik_at12;<br />
  43.  $wynik_obr2=$pancerz_ataku-$wynik_obr12;<br />
  44. RUNDA DRUGA!<br />
  45. Po  wymianie ognia jednostka atakująca działając z mocą $wynik_at12 nie może zniszczyć obrony stacjonujących jednostek na polu $koordfin!<br />
  46. Podczas zaciekłej obrony broniąca się jednostka zadała straty atakującemu w ilości $wynik_obr12.<br />
  47.  Jednostka atakująca ma obecnie $wynik_obr2 punktów obrony a jednostki broniacej się $wynik_at2.<br />
  48.  Podczas ataku jednostka atakujaca zdobyła $doswatak punktów doświadczenia!<br />";
  49. }
  50. $wynik_at12=round($wynik_at12,1);
  51. if($wynik_at13>$pancerz_obrony && $wynik_at12<$pancerz_obrony){
  52. $wynik_at13=round($wynik_at13,1);
  53.  $wynik_obr13=round($wynik_obr13,1);
  54.  $wynik_at3=round($pancerz_obrony-$wynik_at13,1);
  55.  $wynik_obr3=round($pancerz_ataku-$wynik_obr13,1);
  56. RUNDA TRZECIA!<br />
  57. Po wymianie ognia jednostka atakująca działając z mocą $wynik_at13 miażdży obronę stacjonujących jednostek na polu $koordfin!<br />
  58. Podczas zaciekłej obrony broniąca się jednostka zadała straty atakującemu w ilości $wynik_obr13.<br />
  59.  Jednostka atakująca ma obecnie $wynik_obr3 punktów obrony a jednostki broniacej się $wynik_at3.<br />
  60.  Podczas ataku jednostka atakujaca zdobyła $doswatak punktów doświadczenia!<br />";
  61. }else{
  62.  $wynik_at13=round($wynik_at13,1);
  63.  $wynik_obr13=round($wynik_obr13,1);
  64.  $wynik_at3=round($pancerz_obrony-$wynik_at13,1);
  65.  $wynik_obr3=round($pancerz_ataku-$wynik_obr13,1);
  66.  echo"
  67. RUNDA TRZECIA!<br />
  68. Po wymianie ognia jednostka atakująca działając z mocą $wynik_at13 nie może zniszczyć obrony stacjonujących jednostek na polu $koordfin!<br />
  69. Podczas zaciekłej obrony broniąca się jednostka zadała straty atakującemu w ilości $wynik_obr13.<br />
  70.  Jednostka atakująca ma obecnie $wynik_obr3 punktów obrony a jednostki broniacej się $wynik_at3.<br />
  71.  Podczas ataku jednostka atakujaca zdobyła $doswatak punktów doświadczenia!<br />";
  72. }
  73. $wynik_at13=round($wynik_at13,1);
  74. if($wynik_at14>$pancerz_obrony && $wynik_at13<$pancerz_obrony){
  75. $wynik_at14=round($wynik_at14,1);
  76.  $wynik_obr14=round($wynik_obr14,1);
  77.  $wynik_at4=round($pancerz_obrony-$wynik_at14,1);
  78.  $wynik_obr4=round($pancerz_ataku-$wynik_obr14,1);
  79. RUNDA CZWARTA!<br />
  80. Po wymianie ognia jednostka atakująca działając z mocą $wynik_at14 miażdży obronę stacjonujących jednostek na polu $koordfin!<br />
  81. Podczas zaciekłej obrony broniąca się jednostka zadała straty atakującemu w ilości $wynik_obr14.<br />
  82.  Jednostka atakująca ma obecnie $wynik_obr4 punktów obrony a jednostki broniacej się $wynik_at4.<br />
  83.  Podczas ataku jednostka atakujaca zdobyła $doswatak punktów doświadczenia!<br />";
  84. }else{
  85. $wynik_at14=round($wynik_at14,1);
  86.  $wynik_obr14=round($wynik_obr14,1);
  87.  $wynik_at4=round($pancerz_obrony-$wynik_at14,1);
  88.  $wynik_obr4=round($pancerz_ataku-$wynik_obr14,1);  
  89. RUNDA CZWARTA!<br />
  90. Po wymianie ognia jednostka atakująca działając z mocą $wynik_at14 nie może zniszczyć obrony stacjonujących jednostek na polu $koordfin!<br />
  91. Podczas zaciekłej obrony broniąca się jednostka zadała straty atakującemu w ilości $wynik_obr14.<br />
  92.  Jednostka atakująca ma obecnie $wynik_obr4 punktów obrony a jednostki broniacej się $wynik_at4.<br />
  93.  Podczas ataku jednostka atakujaca zdobyła $doswatak punktów doświadczenia!<br />";
  94. }
  95. $wynik_at14=round($wynik_at14,1);
  96. if($wynik_at15>$pancerz_obrony && $wynik_at14<$pancerz_obrony){
  97. $wynik_at15=round($wynik_at15,1);
  98.  $wynik_obr15=round($wynik_obr15,1);
  99.  $wynik_at5=round($pancerz_obrony-$wynik_at15,1);
  100.  $wynik_obr5=round($pancerz_ataku-$wynik_obr15,1);
  101. RUNDA PIĄTA!<br />
  102. Po wymianie ognia jednostka atakująca działając z mocą $wynik_at15 miażdży obronę stacjonujących jednostek na polu $koordfin!<br />
  103. Podczas zaciekłej obrony broniąca się jednostka zadała straty atakującemu w ilości $wynik_obr15.<br />
  104.  Jednostka atakująca ma obecnie $wynik_obr5 punktów obrony a jednostki broniacej się $wynik_at5.<br />
  105.  Podczas ataku jednostka atakujaca zdobyła $doswatak punktów doświadczenia!<br />";
  106. }else{
  107. $wynik_at15=round($wynik_at15,1);
  108.  $wynik_obr15=round($wynik_obr15,1);
  109.  $wynik_at5=round($pancerz_obrony-$wynik_at15,1);
  110.  $wynik_obr5=round($pancerz_ataku-$wynik_obr15,1);  
  111. RUNDA PIĄTA!<br />
  112. Po wymianie ognia jednostka atakująca działając z mocą $wynik_at14 nie moze zniszczyć obrony stacjonujących jednostek na polu $koordfin!<br />
  113. Podczas zaciekłej obrony broniąca się jednostka zadała straty atakującemu w ilości $wynik_obr14.<br />
  114.  Jednostka atakująca ma obecnie $wynik_obr4 punktów obrony a jednostki broniacej się $wynik_at4.<br />
  115.  Podczas ataku jednostka atakujaca zdobyła $doswatak punktów doświadczenia!<br />";  
  116. }
  117. $wynik_at15=round($wynik_at15,1);
  118. if($wynik_at16>$pancerz_obrony && $wynik_at15<$pancerz_obrony){
  119.  $wynik_at16=round($wynik_at16,1);
  120.  $wynik_obr16=round($wynik_obr16,1);
  121.  $wynik_at6=round($pancerz_obrony-$wynik_at16,1);
  122.  $wynik_obr6=round($pancerz_ataku-$wynik_obr16,1);
  123.  echo"
  124. BEZ ROSTRZYGNIĘCIA!<br />
  125. Po wymianie ognia jednostka atakująca działając z mocą $wynik_at16 miażdży obronę stacjonujących jednostek na polu $koordfin!<br />
  126. Podczas zaciekłej obrony broniąca się jednostka zadała straty atakującemu w ilości $wynik_obr16.<br />
  127.  Jednostka atakująca ma obecnie $wynik_obr6 punktów obrony a jednostki broniacej się $wynik_at6.<br />
  128.  Podczas ataku jednostka atakujaca zdobyła $doswatak punktów doświadczenia!<br />";
  129. }else{
  130. $wynik_at16=round($wynik_at16,1);
  131.  $wynik_obr16=round($wynik_obr16,1);
  132.  $wynik_at6=round($pancerz_obrony-$wynik_at16,1);
  133.  $wynik_obr6=round($pancerz_ataku-$wynik_obr16,1);  
  134.  echo"
  135.  BEZ ROSTRZYGNIĘCIA!<br />
  136. Po wymianie ognia jednostka atakująca działając z mocą $wynik_at16  nie moze zniszczyć obrony stacjonujących jednostek na polu $koordfin!<br />
  137. Podczas zaciekłej obrony broniąca się jednostka zadała straty atakującemu w ilości $wynik_obr16.<br />
  138.  Jednostka atakująca ma obecnie $wynik_obr6 punktów obrony a jednostki broniacej się $wynik_at6.<br />
  139.  Podczas ataku jednostka atakujaca zdobyła $doswatak punktów doświadczenia!<br />";
  140. }
  141. ?>

I chcę pokazać userowi kolejne rundy aż spełni się ostatni warunek, a jeśli się nie spełni to ostatnie echo BRAK ROZSTRZYGNIĘCIA.
Proszę o pomoc, bo jak na razie jak podstawię odpowiednie dane aby wykonywało się do if($wynik_at15>$pancerz_obrony && $wynik_at14<$pancerz_obrony){ itd to wykonają się wszystkie warunki, nawet ten ostatni, tylko wypisuje mi już ujemne liczby (ujemny stan pancerza! choć już wcześniejszy pokazał to samo!).
Nie wiem czy dobrze wyjaśniłem;/
Skie
Spróbuj tutaj użyć pętli zamiast if'ów, gdyż są one tutaj niepotrzebne i niewygodne wręcz ;-)

for();
while();
do { } while();
miccom
Witam ponownie.
Dziękuję vokiel!
Twoja odpowiedź była taką, jaką zrozumiałem więc daję pomógł.
P.S Zapomniałeś dodać że mam returna wrzucić w ten kawałek, który jest potrzeby aby zakończyć działanie ale doszedłem do tego.
Jeszcze raz dziękuję smile.gif
Temat do zamknięcia.
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.