Един начин да го направите:
(Ако приемем, че вече знаете как да отворите файл и да изпълните заявка.)
Първо прочетете редове от вашия CSV и приемете, че данните липсват в SQL.
while (($row = fgetcsv($file)) !== FALSE) {
$num = $row[0]; // or whatever CSV column the value you want is in
$result[$num] = ['csv' => $num, 'sql' => '', 'status' => 'MISSING IN SQL'];
}
След това извлечете редове от вашата заявка и съответно попълнете масива, който сте създали от CSV.
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$num = $row['EAN']; // or whatever your column is named
if (isset($result[$num])) {
// This has a value from the CSV, so update the array
$result[$num]['sql'] = $num;
$result[$num]['status'] = 'OK';
} else {
// This doesn't have a value from the CSV, so insert a new row
$result[$num] = ['csv' => '', 'sql' => $num, 'status' => 'MISSING IN CSV'];
}
}
Можете да промените реда на това и първо да обработите резултатите от заявката. И двата реда ще работят, стига да изпълнявате логиката за актуализиране/вмъкване с втория източник на данни.
Можете да ksort($result);
ако искате обединените стойности да са в ред, изведете $result
въпреки това трябва.