Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [symfony] Problem z ułożeniem zapytania
Forum PHP.pl > Forum > PHP > Frameworki
Balon
Potrzebuję wyszukiwać na podstawie podanych słów kluczowych, pliki mp3 na podstawie tytułu i wykonawcy.

Kombinuje tak

  1. <?php
  2. $c = new Criteria();
  3. $c->addDescendingOrderByColumn(FilesPeer::ADDED_ON);
  4.  
  5. foreach($this->prepareQueryArray($keywords) as $query)
  6. {
  7. if($query !== '')
  8. {
  9. empty($cion)
  10. $cion = $c->getNewCriterion(FilesPeer::ARTIST, '%' . $query . '%', Criteria::LIKE)
  11. : $cion->addOr($c->getNewCriterion(FilesPeer::ARTIST, '%' . $query . '%', Criteria::LIKE));
  12.  
  13. $cion->addOr($c->getNewCriterion(FilesPeer::TITLE, '%' . $query . '%', Criteria::LIKE));
  14. }
  15. } 
  16. $c->addAnd($cion);
  17. ?>


Ale nie wychodzi dobrze , dostaje cos takiego. Słowa kluczowe na ktorych testuje to test testu.

  1. SELECT files.ID, files.ARTIST, files.TITLE, files.URL, files.TEXTS_ID, files.VIDEOS_ID, files.ADDED_ON, files.SIZE, files.DOWNLOADED FROM files WHERE (((files.ARTIST LIKE '%test%' OR files.TITLE LIKE '%test%') OR files.ARTIST LIKE '%testu%') OR files.TITLE LIKE '%testu%') ORDER BY files.ADDED_ON DESC LIMIT 10


A chce ulozyc to w taki sposob
  1. (files.ARTIST LIKE '%test%' OR files.TITLE LIKE '%test%') AND (files.ARTIST LIKE '%testu%' OR files.TITLE LIKE '%testu%')


ale mi nie wychodzi. potem przerobiłem trochę inaczej to błędami pluło.

Proszę o pomoc.
strife
To może stwórz to zapytanie ręcznie. Może to Cię zainteresuje http://www.symfony-project.com/snippets/sn...y/order_by/date
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.