Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 29.05.2009 Ostrzeżenie: (0%)
|
Witam,
mam problem z zasysaniem plikow xml do mysql sprawa wyglada nastepujaco do katalogu na serwerze generowane sa plik xml z 3 roznymi danymi: 1) xxxx23218937321.xml 2) zzz88923189832.xml 3) yy12432332132.xml w kazdym z tych plikow znajduja sie rozne dane przykladowe dane 1)xxxx23218937321.xml <?xml version="1.0" encoding="UTF-8" ?> <tabela> <nazwisko>Kowalski</nazwisko> <data>2010.05.24 10:48:21</data> <email>kk@k.pl</email> </tabela> 2) zzz88923189832.xml <?xml version="1.0" encoding="UTF-8" ?> <tabela2> <miasto>Warszawa</miasto> <data_2>2010.05.24 10:41:21</data_2> <kod_pocztowy>01-114</kod_pocztowy> </tabela2> 3) yy12432332132.xml <?xml version="1.0" encoding="UTF-8" ?> <tabela3> <wojewodztwo>mazowieckie</wojewodztwo> <data_3>2010.05.24 10:39:21</data_3> <skrot>maz</skrot> </tabela3> Te pliki beda sie wrzucone do katalogu x uzylem parsowania simplexml jesli jest jedne plik z danej kategori to nie ma problemu i oczywiscie kazdy z rodzaj pliku w oddzienlnym katalogu to nie ma problem pobiera ale jedne plik moze ktos pomoc aby wszystkie pliki byly pobierane z jednego katalogu a zeby sam skryp z php pobieral po zawartosci pliku czyli jesli tabela,tabela2,tabela3 i wrzucal od odpowieniej bazy jesli cos nie napisalem zrozumiale to prosze i info dopisze wiecej ponizej kawalek kodu dzieki ktoremu pobieram dane z pliku i przerzucam do bazy : if($katalog = opendir('./xml/x')){ while(false !== ($plik = readdir($katalog))){ if($plik != '.' && $plik != '..'){ $connection = @mysql_connect('localhost', 'user', 'haslo') or die('Brak połączenia z serwerem MySQL.<br />Błąd: '.mysql_error()); $db = @mysql_select_db('tabela', $connection) or die('Nie mogę połączyć się z bazą danych<br />Błąd: '.mysql_error()); $xml = simplexml_load_file('./xml/x'.$plik.''); $w = $xml->attributes(); $nazwisko = $xml->nazwisko; $data = $xml->data; $email = $xml->email; $dodaj = mysql_query ('INSERT INTO tabela SET nazwisko='.$nazwisko.', data='.$data.', email='.$email.''); } } } powyzszy kod dziala ale na pojedynczych plikach nie chce wrzucac wszystkich w danym katalogu, ale najlepszym rozwiazanem bylo by zeby wszystkie pliki byly w jednym katalogu (xxxx*.xml,zzz*.xml,yy*.xml) z gory dzieki Ten post edytował marioxp 26.05.2010, 17:26:14 |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 13.08.2010 Ostrzeżenie: (0%)
|
zamień na:
Data ma więcej niż 11 znaków, więc musisz w badzie danych ustawić, żeby kolumna `data` miała długość wiecej znaków lub użyć funkcji strftotime Czy jakoś tak, choć mam przeczycie, że jest to varchar - jeśli tak to wtedy nie trzeba nic zmieniać. Pozdrawiam |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 5.12.2010 Skąd: Gdańsk Ostrzeżenie: (0%)
|
tu podałem przykład zastosowania klasy parsującej xml z zapytaniami xpath:
http://forum.php.pl/index.php?showtopic=156664&hl= |
|
|
|
![]() ![]() |
|
Aktualny czas: 24.12.2025 - 16:24 |