Morgen zusammen, ich brauche mal wieder eure Hilfe.
Ich habe ein xml Dokument das ich "zerlegen" will vergleichen/berechnen und danach in die Datenbank schmeißen, das xml zerlegen usw is kein Problem, nur wie am "dümmsten" in ein array stecken damit das ganze nicht zu kompliziert wird, einfaches Beispiel
Ich habe
einmal
logTime="2011-07-09 06:30:22" itemID="1002" actorID="2890187" action="Lock" typeID="27405" quantity="386"
und einmal
logTime="2011-07-09 06:30:16" itemID="1002" actorID="2890187" action="Unlock" typeID="27405" quantity="286"
so das Script schauen ob
1. actorID, itemID und typeID gleich sind
2. logTime bei action="Lock" höher als logTime bei action="Unlock"
um schlieslich zu errechnen ob der actor bei quantity etwas hineingetan oder entfernt hat und wenn ja wieviel.
Sprich wie sollte ich das array am besten aufbauen um es nach diesen kriterien am einfachsten durchsuchen/berechnen kann.
Mein momentaner Ansatz schaut so aus aber damit komm ich nicht weiter.
mfg Spikaner
Ich habe ein xml Dokument das ich "zerlegen" will vergleichen/berechnen und danach in die Datenbank schmeißen, das xml zerlegen usw is kein Problem, nur wie am "dümmsten" in ein array stecken damit das ganze nicht zu kompliziert wird, einfaches Beispiel
Ich habe
einmal
logTime="2011-07-09 06:30:22" itemID="1002" actorID="2890187" action="Lock" typeID="27405" quantity="386"
und einmal
logTime="2011-07-09 06:30:16" itemID="1002" actorID="2890187" action="Unlock" typeID="27405" quantity="286"
so das Script schauen ob
1. actorID, itemID und typeID gleich sind
2. logTime bei action="Lock" höher als logTime bei action="Unlock"
um schlieslich zu errechnen ob der actor bei quantity etwas hineingetan oder entfernt hat und wenn ja wieviel.
Sprich wie sollte ich das array am besten aufbauen um es nach diesen kriterien am einfachsten durchsuchen/berechnen kann.
Mein momentaner Ansatz schaut so aus aber damit komm ich nicht weiter.
PHP:
function xml_attribute($object, $attribute)
{
if(isset($object[$attribute]))
return (string) $object[$attribute];
}
function datetime($date)
{
$a = explode(" ",$date);
$d = explode("-",$a[0]);
$t = explode(":",$a[1]);
return $date = mktime($t[0],$t[1],$t[2],$d[1],$d[2],$d[0]);
}
$file="http://localhost/testfile.xml";
$inhalt=file_get_contents($file);
if (!empty($inhalt)) {
$xml = new SimpleXMLElement($inhalt);
$gegenstaende = $xml->result->rowset;
}
else
{
echo "error";
die;
}
$zeilen = count ($gegenstaende->row);
for ($i = 0; $i < $zeilen; $i++){
$zeile = $gegenstaende->row->$i;
$time[$i] = xml_attribute($zeile, 'logTime');
$name[$i] = xml_attribute($zeile, 'actorName');
$aktion[$i] = xml_attribute($zeile, 'action');
$type[$i] = xml_attribute($zeile, 'typeID');
$menge[$i] = xml_attribute($zeile, 'quantity');
$containerID[$i] = xml_attribute($zeile, ' itemID');
$time[$i] = datetime($time[$i]);
}