2017-10-05 31 views
-2

我列出了一个php数组。如何从php数组中查找不匹配的数据库查询

1 
2 
3 
4 
5 

我想获取不满足mysql查询的元素列表。 (即,mysql没有与db的期望列匹配的数组值)。 db列:db_value假设具有以下内容。

1 
3 
5 
8 

这里$output给出匹配的查询输出。

1 
3 
5 

我需要补充。

2 
4 

这里是我的代码:

<?php 
foreach ($array as $value) 
{ 
    $query = "SELECT * FROM db WHERE db_value="$value";"; 
    $result = $conn->query($query); 
    while($row = $result->fetch_array()) 
    { 
     $output=$row[db_value]; 
    } 
} 
?> 
+0

我们展示的'$ array'和值'prinr_r($ output);'的输出,以便我们可以理解你的问题。还根据这两个数组发布所需的输出。 –

+0

好吧我需要编辑。 – BioDeveloper

+0

你错过了连接'$ value' –

回答

1

1日法

$listArray = [1, 2, 3, 4, 5]; // our list which is to be match from db 

$myArray = implode(",", $listArray); // array to string 

$query = "SELECT * FROM db WHERE db_value NOT IN ($myArray)"; 

现在$query将返回DES红外发光二极管输出

第2种方法

$query = "SELECT * FROM db"; // get all from database 

$db_value = array_column($query['db_values']); // suppose $query have database output 

现在用array_diff()函数获取两个阵列之间不同

$result = array_diff($db_value, $listArray); // gives you desired output 
+0

FWIW,我喜欢第二种方法 – Strawberry

+0

非常感谢NOT IN是mysql的东西。 – BioDeveloper

+0

@blue文字欢迎 –