我正在使用 cakePHP 2.3 构建带有餐厅数据库的应用程序。现在,我之前的人已将餐厅详细信息保存在一个名为“位置”的表中,该表有一列中有多个值的美食,例如 1 个位置可以有中国、印度、韩国等。
如果该列的值存储为“north indian,chinese,mughlai”,我希望不相邻的菜系也应该是可搜索的......就像我在发布的数据中收到“'north indian''mughlai'”,它应该即使中间有中文,仍然显示。基本上是否有命令从列中的字符串中选择多个部分值?
请帮忙!
您需要使用 LIKE 作为比较运算符为每个美食创建一个条件数组条目。这建立在 Hanky Panky 的示例之上
$conditions = array();
foreach (explode(",", $search) as $keyword)
{
$keyword=trim($keyword);
$conditions[] = "columnname LIKE '%" . $keyword . "%'";
}
那么你的发现是:
$this->Location->find('all', array('conditions' => $conditions));
<?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>";
}
}
?>