Mysql возвращает 0 строк, когда в базе данных есть значение.используя Cakephp - PullRequest
0 голосов
/ 06 октября 2011

У меня есть таблица с именем 'projects', в которой есть столбец с именем project_title. Ниже приведен код sql.Кстати, я сделал все это в пирогеЯ могу показать вам мой код для торта, а также SQL-запрос, сгенерированный ниже.

function search()
{
   if (!empty($this->data)): 
     $keywords = Array();
     $keywords['categories'] = array();

     $categories = $this->data['Project']['ProjectCategory'];
     if($categories): 
       foreach($categories as $category):
         $keywords['categories'][] = $category;
       endforeach;
     endif;

     $queries = str_replace(",", "",$this->data['Project']['query']);
     $keywords['project_title'] = explode(" ", $queries);

     $nq = '';

     foreach($keywords as $key =>$value)
     {
       if($key == 'project_title'):
         foreach($value as $q):
           $nq[] = array('Project.project_title LIKE'=>"%$q%");
         endforeach;
       elseif($key == 'categories'):
         foreach($value as $q):
           $nq[] = array('Category.id'=>"$q");
         endforeach;
       endif;
     }

     $final = array("OR"=>$nq);
     $joins = '';//array('table'=>'users','alias'=>'User','type' =>
                 //'LEFT','conditions'=>'User.id = Project.user_id'); 
     $options = array('conditions'=>$final);

     $projects = $this->Project->ProjectCategory->find('all',$options);
     $this->set('projects',$projects);
     $this->paginate();

   endif;
 }

Этот запрос сгенерирован:

SELECT * FROM `project_categories` AS `ProjectCategory` 
LEFT JOIN `projects` AS `Project` 
       ON (`ProjectCategory`.`project_id` = `Project`.`id`) 
LEFT JOIN `categories` AS `Category` 
       ON (`ProjectCategory`.`category_id` = `Category`.`id`) 
WHERE `Project`.`project_title` LIKE '%test%'

, как вы видите, я присоединяюсь к двум другим таблицам.Но это находится здесь

WHERE `Project`.`project_title` LIKE '%test%'

В проектах у меня есть 3 записи, у которых есть слово test под названием проекта.Я перечислю их ниже

Ryans Test Project
Ryans Test Project 2
Test project #2
Money Aint A Thang

Я не получаю ошибок, я просто получаю нулевой результат.
Что не так?

1 Ответ

0 голосов
/ 06 октября 2011

Используете ли вы с учетом регистра в столбце project_title? Если это так, это объясняет, почему поиск test не соответствует строкам, которые содержат Test

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...