2013-09-27 187 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