2013-11-01 14 views
0

匹配我有一個PHP數組PHP數組項部分與數據庫中的表

$array = array(
      "PHP server side scripting", 
      "CSE for designing", 
      "Client side scripting JavaScript, HTML etc", 
      "Java object oriented programming" 
     } 

和數據庫表

+-------+-----------------+ 
| id | language  | 
+-------+-----------------+ 
| 1 | PHP    | 
| 2 | JavaScript  | 
| 3 | CSE    | 
| 4 | C++    | 
+-------+-----------------+ 

如何數組項部分使用查詢數據庫表的字段相匹配。

需要的輸出僅匹配與PHP語言數組

+-------+-----------------+ 
| id | language  | 
+-------+-----------------+ 
| 1 | PHP    | 
| 2 | JavaScript  | 
| 3 | CSE    | 
+-------+-----------------+ 

我曾嘗試以下,但沒有得到實際的結果。

foreach($array as $val) { 
    $sql = "SELECT * FROM my_table WHERE language LIKE '%$val%'"; 
    //remaining code 
}  

在此先感謝。

+1

只是爲了檢查是anguage一個錯字? – Fredd

+0

你拼錯了語言嗎?你的sql語法中的'語言'? –

+0

@Fred哇,相隔10秒XD –

回答

0

從db獲取所有語言然後檢查數組中的語言會更容易。

如果您whant,使其在查詢中,那麼你必須做這樣的事情:

$array = array(
    "PHP server side scripting", 
    "CSE for designing", 
    "Client side scripting JavaScript, HTML etc", 
    "Java object oriented programming" 
); 

foreach($array as $val) { 
    $valArray = explode(" ", $val); 
    $where = ""; 
    foreach ($valArray as $word) { 
     $word = trim($word, ",."); 
     if ($where) { 
      $where .= " OR "; 
     } 
     $where .= " language LIKE '%$word%' "; 
    } 
    $sql = "SELECT * FROM my_table WHERE $where"; 
    //remaining code 
} 

但是,這是醜陋的解決方案