![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 20.07.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Potrzebuję, żeby ktoś mi to wyłożył jak idiocie, bo moje doświadczenie z programowaniem skończyło się na etapie "hello world", a cały dzień dzisiaj czytałem różne przemądre wywody na ten temat i w efekcie rozumiem mniej, niż rozumiałem na początku.
Mam windowsową aplikację (końcówkę kliencką większego systemu), która służy do zarządzania ogłoszeniami oraz stronę internetową, która wyświetla ogłoszenia i pobiera dane tych ogłoszeń z bazy mysql. Aplikacja automatycznie generuje mi zipa, w którym mam XMLa (podobno, cytuję, "w formacie oferty.net" - cokolwiek miałoby to znaczyć) zawierającego róznicowy eksport ogłoszeń oraz zdjęcia, a następnie wrzuca tego zipa przez FTP na serwer. Przykład mojego XML'a (klamra oferta powtarza się wielokrotnie):
Napisałem już prosty skrypt (docelowo ma być odpalany harmonogramem), który tworzy nowy katalog, wypakowuje do niego zawartość zipa i usuwa zbędną paczkę. Teraz muszę jakoś wczytać XML'a i brać z niego porcje danych. Każdą klamrę <oferta> muszę pobrać, przetworzyć i zapisać do bazy. Z każdej klamry <oferta_usun> muszę wyciągnąć id, żeby usunąć rekord z tym id z bazy. Próbowałem wczytać sobie XMLa poleceniem simplexml_load_file, ale niewiele z tego wyszło, bo nie mam pomysłu, co dalej... Z góry dzięki za każdą pomoc! |
|
|
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat Próbowałem wczytać sobie XMLa poleceniem simplexml_load_file, ale niewiele z tego wyszło, bo nie mam pomysłu, co dalej... Pobierasz wartosci ktore ci interesuja i robisz z nimi co cchesz.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 20.07.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
No toś mi podpowiedział... Pobierasz wartości, ale jak, skąd? Kuchnia, gdybym nie miał z tym problemu, to bym gitary nie zawracał.
Wyczytałem, że mam użyć pętelki foreach, ale, k...a, jak? Nie bardzo rozumiem jej działanie, a próby spełzły na niczym.
Próbowałem sprawdzić poleceniem echo, czy dostanę jakieś dane z tego XMLa, ale nie dostaję żadnych danych. Nie dostaję też żadnych błędów - error_reporting(E_ALL) w standardzie. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 354 Pomógł: 100 Dołączył: 14.11.2013 Skąd: Płock Ostrzeżenie: (0%) ![]() ![]() |
Nie echo tylko print_r albo var_dump();
I masz całego XML'a I styka bez forach'a
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 20.07.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Nie echo tylko print_r albo var_dump(); Dzięki! (IMG:style_emoticons/default/specool.gif) Wiedziałem, że gdzieś robię durny, podstawowy błąd, dlatego pisałem od razu, żeby tłumaczyć jak idiocie, bo jestem prostym project managerem, a nie programistą (IMG:style_emoticons/default/smile.gif) Na szybko użyłem print_r($cos); i dostałem dane. Teraz mam od czego zacząć. Muszę jeszcze zrozumieć Twoją konstrukcję Wracam do manuala po dalsze oświecenie. Nie zamykajcie jeszcze wątku, pewnie zaraz będę spowrotem z kolejnym problemem. Póki co jestem przeświadczony, że muszę sobie podzielić wsad na porcje, bo niektóre paczki eksportowe zawierają po 1000 i więcej pozycji, jednak jeszcze nie mam pomysłu jak to zrobić. Mam wrażenie, że jak ich będzie za dużo, to wszystko mi się sfajda i będzie problem ze stwierdzeniem, które ogłoszenia przeszły, a które nie. W bazie liczącej kilkadziesiąt tysięcy rekordów ręczne sprawdzanie 1000 losowych pozycji z xml'a to sama przyjemność, szczególnie, że trzeba sprawdzić każdą pozycję. Coś ostatnio miałem jakiś dziwny problem z forum - ciągle komunikat, że połączenie zresetowane przez serwer... Dziwne, ale najważniejsze, że minęło. Tego zapisu Werdana ze strzałkami dalej nie rozumiem (a konkretniej samych strzałek). Zgodnie z przewidywaniami mam kolejny problem. Za pomocą podkradzionej komu innemu funkcji (GPL) zamieniłem sobie tego xml'a w tablicę. Ta tablica jest niestety wielowymiarowa i dość rozbudowana, więc ciężko się po niej poruszać. Chciałem sobie z niej wydzielić mniejsze fragmenty - pojedyncze tablice z działami. Ma ktoś może pomysł, jak to zrobić? Ja znalazłem tylko array_chunk, ale skoro nie znam wielkości tablicy (każdy plik inny), to raczej mi się nie przyda. Zupełnie oddzielną kwestią jest wyciąganie danych z tej tablicy. Udaje mi się to taką metodą: Podejrzewam, że podobnie działa rozwiązanie, które podał Werdan z tymi strzałkami, ale nie udało mi się tego uruchomić. Poproszę o objaśnienie tej składni. |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 354 Pomógł: 100 Dołączył: 14.11.2013 Skąd: Płock Ostrzeżenie: (0%) ![]() ![]() |
Mój zapis dotyczy pracy z obiektem, twój z tablicą.
Oba zapisy powinny zwrocic ta sama wartosc. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 07:15 |