![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 6.05.2014 Ostrzeżenie: (0%) ![]() ![]() |
Witam wszystkich (IMG:style_emoticons/default/smile.gif)
Mam nadzieje że jest ktoś w stanie mi pomóc rozwiązać problem ze skryptem do aktualizacji stanów magazynowych. Otóż sklep stoi na home.pl i tutaj jest problem... (od administatorów jedyne czego się dowiedziałem to żeby przenieść na inny pakiet hostingowy (IMG:style_emoticons/default/tongue.gif) ot tak pomocni są)... a mianowicie mają ustawione limity CPU (ok rozumie) ale także max_execution_time na ok 5min którego zmienić nie można :/ ale do sedna... Moje wypociny ponizej i jako że jestem laikiem w programowaniu to nie bardzo wiem jak go zoptymalizować lub podzielić na części aby wykonywały się jedna po drugiej (np podzielic plik xml i jeden po drugim parsowac, plik zawiera około 10 000 produktów ~10mb).
Fragment XML:
pokrótce: skrypt pobiera xml przy pomocy simpleXML oraz laczy sie z baza danych gdzie wcześniej zostały zaimportowane produkty z numerem ID wpisanym do tabelki `reference` i jeśli produkt istnieje zarówno w DB jak i XML jego stan magazynowy zostaje uzupelniony odpowiednią liczbą, natomiast jeśli produkt znajduje się w bazie danych ale nie w XMLu to jego stan określa się jako 0. całość opiera się na metodzie array_search() czyli przeszukuje określonego wyrażenia w całej tablicy trzymającej numery ID produktów z XML'a. I pewnie dlatego nieraz otrzymuje komunikat CPU LIMIT jednak nie wymyśliłem jakiegoś innego sposobu aby to sprawdzać. Za każdą sugestie podpowiedź, przykład, rzut okiem na kod będę bardzo wdzięczny (IMG:style_emoticons/default/smile.gif) |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 6.05.2014 Ostrzeżenie: (0%) ![]() ![]() |
dzieki za rade jednak nie moge wykorzystac tej petelki poniewaz plik xml nie zawiera wszystkich importowanych produktów (w pliku xml hurtowni jeśli produkt jest niedostepny (0 stan) jest usuwany), dlatego muszę dokonac sprawdzenia na podstawie numerów ID (tabela: reference) już zapisanych w bazie danych.
Na razie rozwiazałem to właśnie przy pomocy array_search() dzięki której wyszukuje czy dany numer ID produktu jest w pliku XML (tablica utworzona w petli linia 27) i bazie danych ten 'potworek' tworzący warunek choc sensu nie ma dzięki niemu jakoś to działa wmiarę poprawnie (IMG:style_emoticons/default/smile.gif) może masz jakiś pomysł jak ominąć tworzenie tablicy z pliku xml i dopiero w petli while dokonac sprawdzenia czy dany numer ID istnieje właśnie w pliku xml pomijając array_serach()? |
|
|
![]() ![]() |
![]() |
Aktualny czas: 6.10.2025 - 15:28 |