Hallo, in meinem aktuellen Projekt komme ich irgendwie nicht weiter.... :-(
Ich möchte folgendes machen:
Ich Frage mittels "foreach" zwei zusammengehörige Werte aus einem XML DOM aus und erhalte 2 Array:
Diese beiden Array möchte ich jetzt mittels prepare in meine DB schreiben. Dabei soll dem Wert 1 aus dem ersten Array (i2121) der zugehörige Wert aus dem zweiten Array (2VHvXw$Zj8bxfBIxaTWnfA) in der Table Reihe hinzugefügt werden. Also wie Abgebildet :
Mein Code sieht aktuell so aus :
Könnt ihr mir zufällig bei der Schleife helfen, bzw. ist es überhaupt möglich ein derartiges Konstrukt zu schreiben?
Vielen Dank schon einmal.
Ich möchte folgendes machen:
Ich Frage mittels "foreach" zwei zusammengehörige Werte aus einem XML DOM aus und erhalte 2 Array:
HTML:
Array
(
[0] => i2121
[1] => i2166
[2] => i2076
[3] => i1931
[4] => i2014
)
1
Array
(
[0] => 2VHvXw$Zj8bxfBIxaTWnfA
[1] => 2VHvXw$Zj8bxfBIxaTWnfB
[2] => 2VHvXw$Zj8bxfBIxaTWnf5
[3] => 2VHvXw$Zj8bxfBIxaTWpV6
[4] => 2VHvXw$Zj8bxfBIxaTWnf4
)
1
Diese beiden Array möchte ich jetzt mittels prepare in meine DB schreiben. Dabei soll dem Wert 1 aus dem ersten Array (i2121) der zugehörige Wert aus dem zweiten Array (2VHvXw$Zj8bxfBIxaTWnfA) in der Table Reihe hinzugefügt werden. Also wie Abgebildet :
ID | XML_ID | GUID |
---|---|---|
0 | i2121 | 2VHvXw$Zj8bxfBIxaTWnfA |
1 | i2166 | 2VHvXw$Zj8bxfBIxaTWnfB |
2 | ... | .... |
Mein Code sieht aktuell so aus :
PHP:
// Alle Wände im Informationsmodell suchen und die ID's in einen Array schreiben.
$get_all_Walls = $xpath->query('//*/ifc:IfcWallStandardCase/@id');
foreach ($get_all_Walls as $get_all_Wall_IDs){
$Wall_IDs[]= $get_all_Wall_IDs->nodeValue;
}
// Testausgabe der ermittelten Elemente.
echo '<pre>', print_r($Wall_IDs), '</pre>';
echo '<pre>', print_r($Wall_GUIDs), '</pre>';
foreach ($Wall_IDs as $Wall_ID){
$query = "//ifc:IfcWallStandardCase[@id='{$Wall_ID}']/ifc:GlobalId";
foreach($xpath->query($query) as $test){
$Wall_GUID2s[]= $test->nodeValue;
};
}
// Abfrageschleife um zu ermitteln ob die ausgelesenen XML-IDs bereits in der DB vorhanden sind.
foreach ($Wall_IDs as $Test){
//
//echo '<pre>', print_r($Test), '</pre>';
$Wall_ID_exists = $db -> query("SELECT XML_ID FROM ifcwall WHERE XML_ID='{$Test}'");
if(mysqli_num_rows($Wall_ID_exists) > 0){
echo "IDs bereits vorhanden";}
// Wenn abgefragte XML-IDs nicht vorhanden sind, werden sie in die DB geschrieben.
else{
echo "ID nicht da";
$query = "//ifc:IfcWallStandardCase[@id='{$Wall_ID}']/ifc:GlobalId";
foreach($xpath->query($query) as $test){
$Wall_GUID2s[]= $test->nodeValue;
}
$stmt = $db->prepare("INSERT INTO ifcwall (XML_ID, GUID) VALUES (?, ?)");
$stmt->bind_param("ss", $Test, $Wall_GUID2s);
$stmt->execute();
}
};
Könnt ihr mir zufällig bei der Schleife helfen, bzw. ist es überhaupt möglich ein derartiges Konstrukt zu schreiben?
Vielen Dank schon einmal.