我正在使用cakePHP 2.3来构建一个带有餐馆数据库的应用程序。现在,我之前的人已将餐馆的详细信息保存在一个名为“locations”的表中,该表中有一行菜肴,其中一列中有多个值,例如1个位置可以有中文,印度,韩文等。
如果列中存储的值类似于“北印度,中国,mughlai”,我希望非相邻的菜肴也应该是可搜索的...就像我在发布的数据中收到“'north indian''mughlai'” ,它应该仍然显示,即使中间有中文。基本上是有一个命令从列中的字符串中选择多个部分值吗?
请帮忙!
答案 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));