Potrzebuję wyszukiwać na podstawie podanych słów kluczowych, pliki mp3 na podstawie tytułu i wykonawcy.
Kombinuje tak
<?php
$c = new Criteria();
$c->addDescendingOrderByColumn(FilesPeer::ADDED_ON);
foreach($this->prepareQueryArray($keywords) as $query)
{
if($query !== '')
{
? $cion = $c->getNewCriterion(FilesPeer::ARTIST, '%' . $query . '%', Criteria::LIKE)
: $cion->addOr($c->getNewCriterion(FilesPeer::ARTIST, '%' . $query . '%', Criteria::LIKE));
$cion->addOr($c->getNewCriterion(FilesPeer::TITLE, '%' . $query . '%', Criteria::LIKE));
}
}
$c->addAnd($cion);
?>
Ale nie wychodzi dobrze , dostaje cos takiego. Słowa kluczowe na ktorych testuje to
test testu.
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
(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.