Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: problem ze starą bazą danych
Forum PHP.pl > Forum > Bazy danych > MySQL
krek
Witam. Jestem nowy nie ukrywam że chciałbym się was poradzić w sprawie bazy danych , bardoz starej bazy danych z dos'a ... z góry ogromnie byłbym wdzięczny.

Próbowałem to uprościć na wiele sposobów ale póki co to tylko zdołałem odczytać bazę danych oraz zdobyć jej kod.

"
  1. <?xml version="1.0" standalone="yes"?>
  2. <recordset>
  3.  <R1>
  4.    <INDEKS><![CDATA[0000001]]></INDEKS>
  5.    <SYM_DOST><![CDATA[001]]></SYM_DOST>
  6.    <NAZWA><![CDATA[CH.COLVMBUS EDT 50MLV]]></NAZWA>
  7.    <JM><![CDATA[01]]></JM>
  8.    <KOD_GA><![CDATA[10]]></KOD_GA>
  9.    <CENA_ZAK>32,22</CENA_ZAK>
  10.    <CENA_ZB>59</CENA_ZB>
  11.    <CENA_DET>0</CENA_DET>
  12.    <S_POCZ/>
  13.    <PRZY>0</PRZY>
  14.    <ROZ>0</ROZ>
  15.    <S_FAK/>
  16.    <LC>1</LC>
  17.    <DR><![CDATA[]]></DR>
  18.    <MARZA>50</MARZA>
  19.    <PODATEK/>
  20.    <IL_OPAK/>
  21.    <PROC_VAT><![CDATA[22]]></PROC_VAT>
  22.    <SWW><![CDATA[]]></SWW>
  23.    <KRESKI><![CDATA[3595470131011]]></KRESKI>
  24.    <KOD_FISK>1025</KOD_FISK>

"

W chwili obecnej staram się w sklepie przerzucić całą kartotekę asortymentową na nowy program (Subiekt GT). starałem się przegrać to na .xml ale problem dalej wyskakuje gdyż program nie odczytuje "rows" ... nie mam pojęcia jak z tym ruszyć.
Może ktoś z was, speców od tego miał do czynienia z takim problemem ?

Z góry dziękuję chociażby na najmniejszą podpowiedź, naprawdę.

Pozdrawiam.


Aha nie zapytałem czy w ogóle da się to przerobić czy całą kartotekę asortymentową trzeba przepisywać ręcznie.

Jeszcze raz dziękuję

proszę ... chociaż by mała pomoc jak mam dalej ruszyć. Jakiś konwerter albo no nie wiem ... czy w ogóle da się to przerobić ?
mathijas
Oczywiście, że się da. Wszystko się da - kwestia tylko i wyłącznie czasu smile.gif.

W jakim formacie była ta stara baza danych? Raczej nie XML? Ale jeśli już mamy XMLa:

Najprościej jest poszukać jakiegoś parsera z XMLa do CSV i zaimportować do bazy to CSV. Może też być program do debugowania XMLi - sprawdzi co jest nie tak i będzie można poprawić i zaimportować XMLa.

Jeśli jednak nigdzie nic na ten temat nie piszą, XML nie chce się zdebugować, lub następują inne katastrofy nie pozwalające na import do bazy, najlepiej zrobić program w czymkolwiek (php nadaje się świetnie, choć będzie długo działał), który będzie pobierał kolejne pola i ładował je do bazy (tak, jeśli nie ma odpowiedniego parsera, proponuję napisać własny aaevil.gif ).

Najprościej i najłatwiej skorzystać po pierwsze z dobrodziejstw programowania obiektowego i stworzyć coś na zasadzie automatu. Wczytaj całą zawartość XMLa do tablicy wierszy (funkcja file()), czytaj wiersz po wierszu i patrz co Ci wpada.

Jeśli tagi XMLa są uporządkowane, możesz z góry założyć, że pierwszy wiersz po przeczytaniu <R1> będzie zawsze indeksem, drugi sym_dost (nie wiem co to), itd. Wystarczy wczytać odpowiednią ilość wierszy, sprawdzić czy po przeczytaniu wszystkich następny jest </R1> - jeśli tak, załadować wiersz do bazy, sprawdzić czy potem jest <R2> (numer aktualnego wiersza tablicy z funkcji file() + 1 będzie numerkiem którego szukamy przy R) i znowu wczytać kilka potrzebnych wierszy, sprawdzić czy jest </R2> - jeśli tak to insert do bazy... Kontynuować aż napotkasz </recordset>. Jak oddzielić tagi od danych? Proste. Funkcja striptags() zrobi to za Ciebie...

Jeśli jednak XML nie jest uporządkowany, będzie trzeba użyć wyrażeń regularnych (wczytywać przy każdym rekordzie co jest pomiędzy < i >, potem wczytać wartość aż do kolejnego < i przejść do kolejnego wiersza... Niewielka zmiana, ale łatwiej jeśli jednak byłby uporządkowany smile.gif.

Jeśli obiektówka jest zbyt problematyczna - na tablicach da się zrobić to samo...

Jeśli potrzeba szczegółowego opisu, mogę pomóc smile.gif
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.