paź
24

Propel operatory logiczne AND i OR – łączenie

Niektórzy mogą mieć problemy z tworzeniem zapytań w Propelu z dodaniem kryterii z operatorami logicznymi AND i OR. W przypadku prostego warunku wystarczy wpisać:

$c1 = $c->getNewCriterion(DokumentyPeer::SYMBOL, 'FV');
$c2 = $c->getNewCriterion(DokumentyPeer::SYMBOL, 'FI');
$c1->addOr($c2);
$c->add($c1);

Można również użyć:

$c1->addAnd($c2);

Jeżeli chcemy możemy również łączyć te warunki, np:

$c1 = $c->getNewCriterion(DokumentyPeer::OKRES_ROK, $rok_start, Criteria::GREATER_EQUAL);
$c2 = $c->getNewCriterion(DokumentyPeer::OKRES_ROK, $rok_koniec, Criteria::LESS_EQUAL);
$c1->addAnd($c2);
 
$c3 = $c->getNewCriterion(DokumentyPeer::OKRES_ROK, $rok_uruchomienia_start, Criteria::GREATER_EQUAL);
$c4 = $c->getNewCriterion(DokumentyPeer::OKRES_ROK, $rok_uruchomienia_koniec, Criteria::LESS_EQUAL);
$c3->addAnd($c4);
 
$c1->addOr($c3);
$c->add($c1);

Czyli

WHERE (dokumenty.okres_rok >= $rok_start AND dokumenty.rok_start <= $rok_start) OR (dokumenty.okres_rok >= $rok_uruchomienia_start AND dokumenty.rok_start <= $rok_uruchomienia_koniec)

Zostaw komentarz

OpenAvatar i Gravatar są aktywne