2013-09-27 47 views
1

我正在使用cakePHP 2.3来构建具有餐馆数据库的应用程序。现在,我之前的人已将餐厅详情保存在名为“地点”的表格中,该地点在一列中具有多个值的菜肴,如1个地点可以有中国,印度,韩国等。cakephp从列中的字符串中选择多个字符串

如果列有像这样的“北印度,中国,mughlai”存储的价值观,我希望非相邻的美食也应该可以搜索... ...如果我在发布的数据中收到“'北印度人''mughlai'”,它应该仍然显示虽然中间有中文。基本上有一个命令来从列中的字符串中选择多个部分值?

请帮忙!

回答

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>"; 
    } 
} 
?> 
+0

嗨!感谢您的响应..如何在CakePHP中使用它?我使用的是一个数组(条件) –

+0

String :: tokenize()+一个IN sql搜索会为你节省一些代码行:D – mark

0

您需要为LIKE作为比较运算符创建每个美食的条件数组条目。 此基础上手帕Panky的例子

$conditions = array(); 

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

那么你的发现是:

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

也许我错了,但我想他想找到所有的餐厅有mughlai美食或那些有中国美食的。所以:'$ conditions ['OR'] [] =“cuisine LIKE'%$ keyword%'”;' – arilia