Mysqli mit XML vergleichen

PrincePitt

Grünschnabel
Hi ich habe gerade eine kleines Problem.
ich brauche eine Abfrage die die ID von einer Datenbanktabelle mit einer XML Datei abgleicht und sobald die ID nicht mehr in der XML Datei ist dann soll etwas ausgeführt werden. Ich denke vielleicht wieder zu umständlich. Aber gerade in der Corona zeit werden viele Veranstaltungen abgesagt und in der XML Datei werden mir die Veranstaltungen gesendet die ich täglich in die Datenbank Speicher.

Kann mir vielleicht jemand ein Denkanstoß geben?
 

EuroCent

Klappstuhl 2.0
Wie ist denn die XML Datei aufgebaut?

Du kannst eine Datenbank Abfrage machen, die als Array die IDS zurückgibt.
Und mittels in_array oder array_key, array_value kannst Du dann in der XML-Datei deine Felder auslesen.

Beispiel:

PHP:
<?php
$array = [];
//DATENBANK ABFRAGE:
while($row = $db->fetchArray()) {
    array_push($array, $row['id']);
}

$xml = simplexml_load_file("dateiname.xml");
foreach ($xml->feld_name_1->feld_name_2->feld_name_3 as $element){
    foreach ($element->id as $id){
        //Vergleiche $id im Array
        if(in_array($id, $array)) {
            //Existiert
        } else {
            //Existiert nicht
        }
    }
}
?>

Beispiel XML:
XML:
<?xml version = "1.0" encoding = "iso-8859-1"?>
<feld_name_1>
    <feld_name_2>
        <feld_name_3>
            <id>
                1
            </id>
            <id>
                2
            </id>
            <id>
                3
            </id>
        </feld_name_3>
    </feld_name_2>
</feld_name_1>