Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [symfony] Jak się robi OR w zapytaniach SQL?
Forum PHP.pl > Forum > PHP > Frameworki
Cezar708
Witam,

problem wydaje się być banalny, ale nie mogę sobie poradzić sad.gif

od pewnego czasu próbuję zbudować zapytanie za pomocą propelowej klasy Criteria.

z kodu:
  1. <?php
  2. $crit->addSelectColumn( User::IS_ACCEPTED );
  3.  
  4. $crit->add( User::ACCEPT_USER_ID, 57 );
  5. $crit->add( User::INIT_USER_ID, 57 );
  6.  
  7. $friends = FriendUserPeer::doSelect($crit);
  8. ?>


zostaje wygenerowane zapytanie SQL w postaci:
  1. SELECT user.IS_ACCEPTED
  2. FROM user WHERE user.ACCEPT_USER_ID=57 AND user.INIT_USER_ID=57


Pytanie:

Jak sprawić aby powstało zapytanie:
  1. SELECT user.IS_ACCEPTED
  2. FROM user WHERE user.ACCEPT_USER_ID=57 OR user.INIT_USER_ID=57 -- `OR` zamiast `AND`


.. zapytania różnią się od siebie w klauzuli WHERE (w pierwszym jest AND a w drugim jest OR)

czytałem o Criterion addOr( Criterion $criterion), ale za nic w świecie nie chce mi zadziałać w ten sposób. Za każdym razem mam AND zamiast OR... echhh

Wszelkie wskazówki będą bardzo pomocne.
pawel_k
Przykładowy kod:
  1. <?php
  2. $objCrit = new Criteria();
  3. $objCriterion1 = $objCrit->getNewCriterion( UserPeer::USER_ID, 1 );
  4. $objCriterion2 = $objCrit->getNewCriterion( UserPeer::LOGIN , 'test' );
  5.  
  6. $objCriterion2->addOr( $objCriterion1 );
  7.  
  8. $objCrit->add( $objCriterion2 );
  9.  
  10. $arrRes = UserPeer::doSelect( $objCrit );
  11. ?>


  1. SELECT ..... FROM users WHERE (users.LOGIN='test' OR users.USER_ID=1)
Cezar708
Wielkie dzięki, o to mi chodziło.
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.