Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Wynik pętli w warunku instrukcji if
Volume
post
Post #1





Grupa: Zarejestrowani
Postów: 283
Pomógł: 11
Dołączył: 11.10.2004
Skąd: 3c

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


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ć?

Ten post edytował Volume 23.02.2012, 20:56:15
Go to the top of the page
+Quote Post
Fifi209
post
Post #2





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


strtotime i w pętli możesz sobie robić tym co chcesz


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
Volume
post
Post #3





Grupa: Zarejestrowani
Postów: 283
Pomógł: 11
Dołączył: 11.10.2004
Skąd: 3c

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


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





Grupa: Zarejestrowani
Postów: 215
Pomógł: 44
Dołączył: 31.07.2011
Skąd: wrocław

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


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>";
Go to the top of the page
+Quote Post
Volume
post
Post #5





Grupa: Zarejestrowani
Postów: 283
Pomógł: 11
Dołączył: 11.10.2004
Skąd: 3c

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


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)
Go to the top of the page
+Quote Post
ADeM
post
Post #6





Grupa: Zarejestrowani
Postów: 455
Pomógł: 69
Dołączył: 23.10.2004
Skąd: Oświęcim

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


  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. }


?


--------------------
Go to the top of the page
+Quote Post
Volume
post
Post #7





Grupa: Zarejestrowani
Postów: 283
Pomógł: 11
Dołączył: 11.10.2004
Skąd: 3c

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


Dzieki za odp. ogolnie zalatwilem to po prostu stworzenem wlasnej funkcji.
Solved
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 06:38