Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [XML][MySQL][PHP]Import XML poprzez php
Forum PHP.pl > Forum > Przedszkole
dje31
WItam
Wiem że temat był kilkakrotnie walkowany ale:

Mam link do pliku .xml z okolo 44 000 produkatmi w prawie 50 kategoriach itd ...
W bazie mam już zaimplemenowane produkty z tego xmla - tylko z 15 kategorii czyli powiedzmy 20 000 produktów.

I teraz musze przygotowac codzienny update tych produktów wzgledem XMLa (cena, stan itd ...)

I moje pytania brzmi jak taki manewr zoptymalizować ?
Czyli jak to zrobić najefektywniej ?

Moje dwa pomysly:
1. Pobrać produkty z bazy danych do tablicy, do drugiej pobrać wszystkie (z 15 kat)z XMLa i porownywać wg ID jest to edit nie ma insert.
2. Pobrać produkty z XMla do tablcy i sprawdzić czy ID jest w bazie jak jest to nadpisać stan cene itd .. jak nie ma to insert .

Co bedzię bardziej optymalne ?

Z góry dzięki
Pozdrawiam
sdsd
Jeśli robisz to w cronie o 3 w nocy to nie ma to znaczenia.
Całą operacja zajmie ci 3 sekundy i nikt nie zauważy o tej godzinie spowolnienia strony.
dje31
TAk robić bede Cronem.

Czy bedze to rwalo 3 sek to nie jestem do konca przekonany.
Ale mi chodzi o to czy szybciej zaciagac plik XML do tablicy i spawrdzac z bazą czy bazę z plikiem ?
Ze względu na to że plik posiada wiecej produktów i kategorii niż te które mnie interesują.
Pyton_000
I tak musisz przeleciec caly plik.

XMLReader pobierz sobie wszystkie niezbedne dane typu id, cena, stan, pobierz id z bazy danych, zrob diff i update tego co zostanie.
dje31
To fakt raz musze zaciagnac cały plik.

XMLReader zapisze info ale "DIFF" ? Nigdy nie uzywałem ...
Jakiś link do tego ? w Manualu znalazłem tylko "PHP: DateTime::diff"

Zresztą wrazie coś bez diffa tez polecę dalej ale dlaczego nie zaimplementować coś nowego == szybszego.
Pyton_000
array_key_diff pod warunkiem że kluczami tablicy z XML i bd będą ID produktów
dje31
To nie przejdzie id produktu w bazie jest kluczem a sparwdzanie robie po "PN" (kod produktu), w XMLu kluczem jest PN="AWSP61212P"

Pyton_000
O ile PN jest Uniq to nie ma problemu, możesz pobrać to zamiast ID i zastosować ten sam mechanizm.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.