我正在使用cakePHP 2.3來構建具有餐館數據庫的應用程序。現在,我之前的人已將餐廳詳情保存在名爲「地點」的表格中,該地點在一列中具有多個值的菜餚,如1個地點可以有中國,印度,韓國等。cakephp從列中的字符串中選擇多個字符串
如果列有像這樣的「北印度,中國,mughlai」存儲的價值觀,我希望非相鄰的美食也應該可以搜索... ...如果我在發佈的數據中收到「'北印度人''mughlai'」,它應該仍然顯示雖然中間有中文。基本上有一個命令來從列中的字符串中選擇多個部分值?
請幫忙!
我正在使用cakePHP 2.3來構建具有餐館數據庫的應用程序。現在,我之前的人已將餐廳詳情保存在名爲「地點」的表格中,該地點在一列中具有多個值的菜餚,如1個地點可以有中國,印度,韓國等。cakephp從列中的字符串中選擇多個字符串
如果列有像這樣的「北印度,中國,mughlai」存儲的價值觀,我希望非相鄰的美食也應該可以搜索... ...如果我在發佈的數據中收到「'北印度人''mughlai'」,它應該仍然顯示雖然中間有中文。基本上有一個命令來從列中的字符串中選擇多個部分值?
請幫忙!
<?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>";
}
}
?>
您需要爲LIKE作爲比較運算符創建每個美食的條件數組條目。 此基礎上手帕Panky的例子
$conditions = array();
foreach (explode(",", $search) as $keyword)
{
$keyword=trim($keyword);
$conditions[] = "columnname LIKE '%" . $keyword . "%'";
}
那麼你的發現是:
$this->Location->find('all', array('conditions' => $conditions));
也許我錯了,但我想他想找到所有的餐廳有mughlai美食或那些有中國美食的。所以:'$ conditions ['OR'] [] =「cuisine LIKE'%$ keyword%'」;' – arilia
嗨!感謝您的響應..如何在CakePHP中使用它?我使用的是一個數組(條件) –
String :: tokenize()+一個IN sql搜索會爲你節省一些代碼行:D – mark