| | | | |
| |||||||
| Software-Design Diskussionen auf Profi-Niveau: PHP Lösungen auf konzeptioneller Ebene |
|
| | LinkBack | Themen-Optionen | Thema bewerten |
| | |
| PHP Code Flüsterer Registriert seit: 21.08.2005 Beiträge: 4682 PHP-Kenntnisse: Fortgeschritten | |
| | |
| Moderator Registriert seit: 11.05.2008
Beiträge: 6.269
![]() ![]() ![]() ![]() ![]() ![]() ![]() | Hallo, zunächst mal würde ich die XML-Datei in ein DOMDocument laden. Danach kannst du mit DOMXPath die Touren "paginaten": Code: /tour[position() < 5] Auf welcher Seite du dich befindest musst du dir eben irgendwie merken. Das Speichern in der DB würde ich aber unbedingt auslagern. Sprich unterteil den Code: -XML einlesen -XML interpretieren -normalisierten Dump erzeugen (PHP-Array, CSV, ..) -in Datenbank eintragen (temporäre Tabelle, ..) -Vergleich durchführen (aktualisieren und löschen von Datensätzen) Nach und vor jedem Schritt kannst du Konsistenzprüfungen einbauen, somit sollte ein Fehler relativ schnell aufzufinden sein. |
| | |
| | |
| Moderator Registriert seit: 11.05.2008
Beiträge: 6.269
![]() ![]() ![]() ![]() ![]() ![]() ![]() | Ich persönlich finde simpleXML nicht intuitiv, DOMDocument stellt mit DOMElement eine aussagekräftige Klasse bereit, mit der auf Knoten zugegriffen werden kann. Aber letztlich ist es egal und wenn du alles richtig aufbaust, kannst du diesen Teil später auch einfach austauschen und das Auslesen des XML durch eine andere Lib erledigen lassen. Der Vorteil der temporären Tabelle ist, dass du in einem Rutsch alle Daten reinschreiben kannst und den Abgleich über die MySQL selbst erledigen kannst. Das ist schneller als wie im Code oben alles Häpchenweise einzutragen und PHP-seitig die Synchronization zu erledigen. Du kannst also ganze Blöcke von Tabelle A zu Tabelle B schieben. Das ist 10-100x (Faustregel) schneller als über PHP selbst. Momentan führst du ja pro Tour-Knoten einen Query durch, das ist extrem unperformant. Queries in Schleifen solltest du immer versuchen zu vermeiden. |
| | |
| | |||
| Erfahrener Benutzer Registriert seit: 08.04.2009
Beiträge: 324
![]() | Vielen Dank erstmal für das mit Gedanken machen. ![]() Zitat:
Meinst du eine wirklich Temp Tabelle? Code: CREATE TEMPORARY TABLE tmp Hiervon bräuchte ich ja schon wohl 2. Für Tours und Events. *glaub Diese sind ja auch nur gültig innerhalb einer DB Verbindung außer ich verwende ganz normale Tabellen die ich dann einfach wieder leere. Wir würde der Abgleich direkt per MYSQL Funktionieren? Mit in MYSQL erstellten Prozeduren? Zitat:
Mal eine überlegung: 1. XML Daten laden und Lokal erstmal speichern ( Dauert ca. 5-10sek.) 2. Umleitung auf sich selbst. 3. Die ersten z.b. 100 Touren laden 4. Multiinsert der Tour und Event Daten in einer Temptabelle 5. Schritt 4 wiederholen bis alle Daten in der Temptabelle vorhanden sind. 6. Abgleichen der Daten per MYSQL? 7. Laden der Bilder und erstellen eines Thumbs so wie speichern der Orginalgröße. Max 10 pics auf einmal. | ||
| | |
| | |
| Moderator Registriert seit: 11.05.2008
Beiträge: 6.269
![]() ![]() ![]() ![]() ![]() ![]() ![]() | Ja, du könntest die Daten auch in ein CSV schreiben und dann wirklich komplett in die Datenbank schieben. Mit LOAD DATA geht das extrem schnell, wenn CSV und Datenbankserver auf der selben Maschine laufen. Auch wenn es scheinbar erstmal keinen Sinn macht XML in CSV umzuwandeln geht das doch sehr sehr schnell. Dann könntest du die temporären Tabellen auch wirklich temporär benutzen und müsstest keine normalen Hilfstabellen anlegen. |
| | |
|
| Themen-Optionen | |
| Thema bewerten | |
|
|
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| 100% OOP wirklich sinnvoll ? | Pehapeh | PHP-Fortgeschrittene | 31 | 04.12.2009 11:19 |
| Was bringt OOP wenn Objekte nach jeder Seite sterben? | majorbenks | PHP Tipps 2009 | 9 | 18.11.2009 14:11 |
| [Erledigt] PHP csv import mit sortierung möglich? | fulltilt | PHP Tipps 2009 | 10 | 02.11.2009 17:29 |
| Eure Tipps/Hinweise/Empfehlungen zum Thema Modellierung und OOP | ChillSn | Off-Topic Diskussionen | 1 | 30.09.2009 15:19 |
| Tutorial: PHP/MySQL und OOP | Chriz | Tutorials | 11 | 19.08.2009 23:51 |
| MVC mit OOP umsetzen | Benjamin Such | PHP Tipps 2009 | 3 | 17.08.2009 16:04 |
| [Erledigt] OOP & PHP5 Buchempfehlung? | boernard | PHP Tipps 2009 | 2 | 26.02.2009 18:32 |
| Einstieg in Objekt-orientierte-Programmierung (OOP) - Erste Versuche :-) | echo | PHP Tipps 2009 | 20 | 26.02.2009 11:08 |
| Wer hilft mir bei OOP? | echo | Beitragsarchiv | 27 | 23.02.2009 16:12 |
| Einstieg in Objekt-orientierte-Programmierung (OOP) | echo | PHP Tipps 2009 | 50 | 17.02.2009 11:55 |
| OOP verstanden? | stayInside | PHP Tipps 2009 | 4 | 24.01.2009 02:57 |
| Buch für OOP | homekiller | PHP Tipps 2008 | 2 | 21.12.2008 16:54 |
| MVC vs. herkömmliches OOP | stayInside | PHP Tipps 2008 | 5 | 26.11.2008 22:47 |
| Umlaute ä,ö,ü und ß werden beim SQL Import nicht übernommen | Plague | Datenbanken | 7 | 17.09.2007 17:28 |
| Import von Netscape Mail nach Outlook Express | Off-Topic Diskussionen | 6 | 10.05.2005 09:12 | |
| Besucher kamen über folgende Suchanfragen bei Google auf diese Seite |
| xml import php, php xml import, xml oop, php xml importer, vorteil xml import gegenüber cxv import, php xml oop, xml import mysql, php simplexml getvalue, xml interpretieren, pattern import csv xml, htms in oop imporieren, xml import, oop xml parsen, php oop get auslesen, xml daten auslesen oop php, oop get auslesen, oop php liste sortieren nach kategorie, simplexml alle einträge überschreiben, php5 xml import, import xml in php |