0

私は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++             |
+-------+-----------------+

クエリを使用して、配列項目をデータベース テーブルのフィールドと部分的に一致させる方法。

必要な出力は、language と PHP 配列のみに一致しました

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

以下を試しましたが、実際の結果は得られませんでした。

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

前もって感謝します。

4

1 に答える 1

0

db からすべての言語を取得してから、配列に含まれる言語を確認する方が簡単です。

クエリで作成したい場合は、次のようにする必要があります。

$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
} 

しかし、それは醜い解決策です

于 2013-11-01T17:12:56.237 に答える