Sven Mörs: PHP, Ajax XML Produkte einzeln laden

Beitrag lesen

Guten Tag,

habe riesige XML Dateien teilweise 900MB die will ich gerne Parsen und in der Datenbank speichern. Will gerne jedes Einzelne "Produkt" Speichern und ein Fortschritt Balken anzeigen lassen. Hole als erstes die Anzahl der Produkte per Ajax Request. Danach werden die Produkte einzeln gespeichert in der Datenbank.

Mache es deswegen so, dass die Webseite nicht stehen bleibt wenn ich alles auf einmal in einer Schleife auslese und in der Datenbank Speicher. Kann ja bis zu 15 Minuten dauern wenn über 50.000 Produkte drinne stehen mit Beschreibung etc. Problem ist nur das die Variable wo die XML geladen wird nach dem 2 Request wieder leer ist.

		/*Produktanzahl*/
		if ($_POST["func"] == "GetProductCount")
		{
			$loadXML = simplexml_load_file('shops/'.$sauber["filename"]);

			$shopID = "0";
			$sql = "DELETE FROM `products` WHERE `shopid`='".$shopID."';";
			$result = mysql_query($sql);

			$arr["count"] = count($loadXML->Product);

			echo json_encode($arr);
		}
		/*ENDE*/

		/*Produkte speichern*/
		if ($_POST["func"] === "SaveProduct")
		{		
			$Product = $loadXML->Product[$sauber["index"]];
                        ...


$loadXML ist bei "SaveProduct" wieder leer, die Variable ist Global Definiert in der index.php. Die ganze Webseite läuft mit Ajax die Index wird nur einmal geladen und deswegen sollte es eigentlich funktionieren. Andere Variablen funktionieren ja auch, warum geht das mit der XML nicht so?