Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [XML][MySQL][PHP]Zapisywanie danych z XMLa do bazy
m4573r
post
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):
  1. <?xml version="1.0" encoding="UTF-8"?>
  2.  
  3. <plik>
  4. <header>
  5. <informacje>Eksport automatyczny</informacje>
  6. <agencja>Agencja 1</agencja>
  7. <data>2013-11-06 14:36:39</data>
  8. <wersja>0.4</wersja>
  9. <cel>oferty.net</cel>
  10. <zawartosc_pliku>roznica</zawartosc_pliku>
  11. </header>
  12. <lista_ofert>
  13. <dzial typ="sprzedaz" tab="mieszkania">
  14. <oferta>
  15. <id>735</id>
  16. <cena waluta="PLN">540000.00</cena>
  17. <param nazwa="balkon" typ="bool">true</param>
  18. <param nazwa="powierzchnia_balkonu" typ="bool">11.0</param>
  19. <param nazwa="garaz" typ="bool">true</param>
  20. <param nazwa="internet" typ="bool"/>
  21. <param nazwa="lazienka_wc" typ="text">razem z WC</param>
  22. <param nazwa="powierzchnia_lazienki" typ="text">4.4</param>
  23. <param nazwa="liczbapieter" typ="int">3</param>
  24. <param nazwa="liczbapokoi" typ="int">3</param>
  25. <param nazwa="liczbalazienek" typ="int">1</param>
  26. <param nazwa="ma_domofon" typ="bool">true</param>
  27. <param nazwa="ogrzewanie" typ="text">miejskie</param>
  28. <param nazwa="ma_ogrzewanie" typ="bool">true</param>
  29. <param nazwa="materialbudowy" typ="text">cegła</param>
  30. <param nazwa="pietro" typ="int">2</param>
  31. <param nazwa="rokbudowy" typ="int">2009</param>
  32. <param nazwa="typbudynkumieszk" typ="text">blok</param>
  33. <param nazwa="typkuchni" typ="text">widna</param>
  34. <param nazwa="ulica" typ="text">Chrościckiego</param>
  35. <param nazwa="winda" typ="bool"/>
  36. <param nazwa="typ_podlogi" typ="bool">klepka</param>
  37. <param nazwa="czy_cena_do_negocjacji" typ="bool">true</param>
  38. <param nazwa="powierzchnia" typ="real">70.0</param>
  39. <param nazwa="agent_email" typ="text">krysiazdzisia@strona.pl</param>
  40. <param nazwa="agent_gg" typ="text"/>
  41. <param nazwa="agent_nazwisko" typ="text">Krysia Zdzisia</param>
  42. <param nazwa="agent_skype" typ="text"/>
  43. <param nazwa="agent_tel_biuro" typ="text"/>
  44. <param nazwa="agent_tel_kom" typ="text"/>
  45. <param nazwa="kraj" typ="text">Polska</param>
  46. <param nazwa="wojewodztwo" typ="text">Mazowieckie</param>
  47. <param nazwa="miasto" typ="text">Warszawa</param>
  48. <param nazwa="dzielnica" typ="text"/>
  49. <param nazwa="okolica" typ="text"/>
  50. <location>
  51. <area type="root" level="1">Polska</area>
  52. <area type="province" level="2">Mazowieckie</area>
  53. <area type="city" level="5">Warszawa</area>
  54. </location>
  55. <param nazwa="przetarg" typ="bool"/>
  56. <param nazwa="termin_przetargu" typ="text"/>
  57. <param nazwa="vadium" typ="text"/>
  58. <param nazwa="dataaktualizacji" typ="text">2013-11-06 11:07:40</param>
  59. <param nazwa="bezprowizji" typ="bool">true</param>
  60. <param nazwa="forma_wlasnosci" typ="text">własność</param>
  61. <param nazwa="sprzedane" typ="bool">false</param>
  62. <param nazwa="datawprowadzenia" typ="text">2013-11-06 11:08:33</param>
  63. <param nazwa="opis" typ="text"/>
  64. </oferta>
  65. <dzial typ="wynajem" tab="dzialki">
  66. <oferta_usun>
  67. <id>303</id>
  68. </oferta_usun>
  69. <oferta_usun>
  70. <id>272</id>
  71. </oferta_usun>
  72. <oferta_usun>
  73. <id>274</id>
  74. </oferta_usun>


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!



--------------------
"...Perdido en el corazon de la grande Babylon. Me dicen el Clandestino por no llevar papel..."
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 06:01