cakephp从列中的字符串中选择多个字符串

时间:2013-09-27 15:25:20

标签: php mysql cakephp

我正在使用cakePHP 2.3来构建一个带有餐馆数据库的应用程序。现在,我之前的人已将餐馆的详细信息保存在一个名为“locations”的表中,该表中有一行菜肴,其中一列中有多个值,例如1个位置可以有中文,印度,韩文等。

如果列中存储的值类似于“北印度,中国,mughlai”,我希望非相邻的菜肴也应该是可搜索的...就像我在发布的数据中收到“'north indian''mughlai'” ,它应该仍然显示,即使中间有中文。基本上是有一个命令从列中的字符串中选择多个部分值吗?

请帮忙!

2 个答案:

答案 0 :(得分:0)

<?php
$saved="north indian,chinese,mughlai";

$search="north indian, mughlai";

foreach(explode(",",$search) as $keyword)
{
    $keyword=trim($keyword);
    if(stristr($saved,$keyword)!==false)
    {
        echo "Match Found for $keyword <br>";
    }
}
?>

答案 1 :(得分:0)

您需要使用LIKE作为比较运算符为每个菜肴创建条件数组条目。 这基于Hanky Panky的例子

$conditions = array();

foreach (explode(",", $search) as $keyword)
{
  $keyword=trim($keyword);
  $conditions[] = "columnname LIKE '%" . $keyword . "%'";
}

然后你的发现是:

$this->Location->find('all', array('conditions' => $conditions));