PHP 数组项与数据库表部分匹配

标签 php mysql arrays

我有一个 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
}    

提前致谢。

最佳答案

从数据库获取所有语言然后检查数组中有哪些语言会更容易。

如果您想在查询中使用它,那么您必须执行以下操作:

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

但这是一个丑陋的解决方案

关于PHP 数组项与数据库表部分匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19731474/

相关文章:

php - Codeigniter:自定义配置还是常量?

javascript - 如何减少第一个字节的时间

php - 使用 MySQL 和 PHP 的 Google Geocode V2 与 V3

c# - .NET 中的数组是否失去了意义?

arrays - ActionScript 3 : Identifying an array element to delete when the elements are objects/class instances

javascript - 如何使用从 DOM 检索到的值来拆分数组

php - 维基百科信息框 - 麻烦匹配模式

php - 如何提取同一文件中的 id 属性以用于查询

php - PHP 的隐藏功能?

php - 使用表A中的id计算表B中的行php mysql