Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Wynik pętli w warunku instrukcji if
Forum PHP.pl > Forum > PHP
Volume
Mam tego typu problem, że mam przyklad jednego takiego warunku:

  1. if($day>=12 && $day<=25 && $month==2 && $year==2012)
  2. {
  3. $calendar .= '<td>'.$day.'</td>';
  4. }
  5. else if ...

A potrzebuje uzyskać efekt pętli np. for w warunku instrukcji.
Powyższy przykład pokazuje w warunku instrukcji pierwszy wynik pętli.
Dla dwóch wyniki wyglądał by tak:
  1. if($day>=12 && $day<=25 && $month==2 && $year==2012 || $day>=27 && $day<=29 && $month==2 && $year==2012)
  2. {
  3. $calendar .= '<td>'.$day.'</td>';
  4. }
  5. else if ...
itd.
Ogólnie mam zbiór danych rezerwacji kalendarzowej od - do i potrzebuje na zasadzie pętli dostarczyć te warunki do instrukcji if...
Czy ktoś wie jak to się powinno robić?
Fifi209
strtotime i w pętli możesz sobie robić tym co chcesz
Volume
Chyba zle zostalem zrozumialy albo ja zle rozumiem...
nie wiem po co mi strtotime skoro mam juz wartosci w formie po prostu liczb i potrzebuje je wtloczyć do warunki instrukcji tak jak do pętli czyli łopatologicznie ma to byc jakby jakis sposob petli w warunku instrukcji: if(for(....)).
crocodillo
Jeśli dobrze Cię zrozumiałem to:
  1. $b=2
  2.  
  3. for ($a=0;$a<3;$a++) {
  4.  
  5. if ($a==$b) {
  6. $calendar.="<td>$a</td>";
  7. break;
  8. }
  9. }


jest równoznaczne z:

  1. if ($b==0 || $b==1 || $b==2) $calendar.="<td>$a</td>";
Volume
nie do konca - alebo mi coś nie wychodzi...
Jeszcze raz, na takim przykładzie:
  1. $dataall=$year.$month.$day;
  2.  
  3. $tab_od=array('20120401','20120416','20120510');
  4. $tab_do=array('20120405','20120425','20120510');
  5.  
  6.  
  7. if($dataall>=$tab_od[0] && $dataall<=$tab_do[0] || $dataall>=$tab_od[1] && $dataall<=$tab_do[1] || ...)
  8. {
  9. $calendar .= '<td class="rezerwacja"><span title="rezerwacja" id="id'.$year.$month.$day.'">'.$day.'</span></td>';
  10. }
  11. else if
  12. //inne warunki


Taki kod dziala poprawnie (jeśli ręcznie do instrukcji if wprowadze warunki warunek1 || warunek2 || warunek3 itd...).

Kombinowalem z pętlą przed if

np.:
  1. for($j=0;$j=count(tab_do);$j++)
  2. {
  3. if($dataall>=$tab_od[$j] && $dataall<=$tab_do[$j])
  4. {
  5. $calendar .= '<td class="rezerwacja"><span title="rezerwacja" id="id'.$year.$month.$day.'">'.$day.'</span></td>';
  6. //break; - jak dam break to wyskakuje oczywiście tylko pierwszy wynik jak nie ma break to podwaja/potraja itd mi komórki - wiadomo o co chodzi, więc to odpada
  7. }
  8. else if
  9. //inne warunki


nie wiem jak jeszcze problem inaczej przedstawić - schematycznie potrzebuje po prostu zapętlić warunek w instrukcji if([cos>=od && cos<=do || ...] - to zapętlam)
ADeM
  1. $match = true;
  2.  
  3. for( $i = 0, $count = count( $tab_od ); $i < $count; ++$i )
  4. {
  5. if( $dataall < $tab_od[ $i ] || $dataall > $tab_do[ $i ] )
  6. {
  7. $match = false;
  8. break;
  9. }
  10. }
  11.  
  12. if( $match )
  13. {
  14. $calendar .= '<td class="rezerwacja"><span title="rezerwacja" id="id'.$year.$month.$day.'">'.$day.'</span></td>';
  15. }
  16. else
  17. {
  18. //...
  19. }


?
Volume
Dzieki za odp. ogolnie zalatwilem to po prostu stworzenem wlasnej funkcji.
Solved
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.