2017-10-05 102 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文字歡迎 –