Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 1 116 Pomógł: 119 Dołączył: 10.05.2005 Skąd: Poznań Ostrzeżenie: (0%)
|
Witam,
Dostałem zlecenie, które polega na napisanie pewnego rodzaju back-officeowej aplikacji służącej do generowania fomularzy na podstawie XML. W pliku XML zapisane mają być tagi, które spowodują pojawienie się na formularzu określonych pól i przycisków w określonych miejscach, a zmiana formatki ma być tylko na podstawie plików XML, bez programowania w PHP. UWAGA! Nie chodzi mi o transformatę XSLT, ponieważ jednym z założeń ma być DODAWANIE PÓL FORMULARZA oraz ich USUWANIE. Na przykład: Mamy dane dotyczące użytkownika: imie, nazwisko, miasto, ulica. Wiadome jest, że aby dodać takie dane do bazy danych należy stworzyć odpowiednią formatkę i plik PHP ją obsługujący. Po jakimś czasie okazuje się, że należy dodać jeszcze pola: nr_telefonu, kod_pocztowy. W normalnych warunkach wymagałoby to zmiany w bazie danych oraz zmianie kodów PHP (a w tym walidacja formularza oraz kod akcji zapisywania danych do bazy) Teraz pytanie: Czy istnieje jakieś rozwiązanie, na którym mógłbym się oprzeć tworząc taką aplikację? Czy może ktoś z Was już kiedyś coś podobnego robił? Proszę o jakiekolwiek wskazówki w jaki sposób najefektywniej utworzyć taki parser - kreator kodu PHP. Pozdrawiam. |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 1 Dołączył: 15.11.2004 Skąd: Kraków Ostrzeżenie: (0%)
|
Rozbijanie na 2 tabele:
Zakładam, że masz w relacyjnej bazie danych tabele o nazwie "user". W tabeli przechowujesz dane w stałym formacie: np. user_id, nazwisko, imie, e-mail. Tworzysz sobie nową tabelę (zakładam, że masz prawo wykonać polecenie CREATE TABLE), w której możesz tworzyć i usuwać dowolne kolumny. Jedną z nich (z reguły pierwszą) jest user_id, która odwołuje się do klucza głównego tabeli user. Prawdopodobnie z tabeli user korzystają inne moduły Twojego programu lub inne programy. Tabela user nie podlega wtedy modyfikacjom struktury i jest bezpieczna w przypadku błędnego skonstruowania polecenia ALTER TABLE przez skrypt PHP. Oczywiście możesz przechowywać w tej dodatkowej tabeli pola w postaci XML lub tekstu z separatorami, jednak operacje na takiej bazie może wykonywać jedynie aplikacja a nie baza. Można w tego typu bazie przechować dowolne informacje, np. dla kilku userów zapisać: INSERT INTO USER_DATA (user_id, dane_opisowe) VALUES(55, '<NUMER_BUTA>43</NUMER_BUTA>'); Niestety, nie da się wtedy przeszukać takiej bazy pisząc: SELECT user_id FROM USER_DATA WHERE numer_buta=55. Niestety (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) to nie przejdzie. Proponuję, abyś dołożył nową tabelę (ja ją nazwałem USER_DATA) i w niej przechowywał dane o zmiennym formacie. Raczej w grę wchodzi tylko dodawanie kolumn, bez usuwania bo wtedy tracisz dane. Do tego dodatkowe pole tekstowe (typu varchar) na ewentualne dane, które bardzo chcesz przechować a sa na tyle nietypowe, że tworzenie dla nich specjalnej kolumny jest niemozliwe. Jeszcze inne rozwiązanie. Załóż tabelę o nazwie powiedzmy "parametry". create table parametry(user_id int, parametr varchar, wartosc varchar); Będziesz mógł przechowywać dowolną zmienną listę wartości dla każdego użytkownika i operować na niej poleceniami SQL. Najfajniej to działa na bazie Oracle ale na MySQL też się sprawdza. |
|
|
|
Cezar708 [XML+PHP] parser XML do tworzenia Formatek 9.12.2007, 19:50:44
splatch W twoim przypadku, jeśli idzie o modyfikację struk... 14.12.2007, 13:33:33
Cezar708 Hmm,
ale mam pytanie. Wykorzystać DOM to rozumie... 4.01.2008, 12:40:59
wkrugiolka A moze rozbij to na 2 tabele. Tabela wlasciwego wp... 6.01.2008, 10:12:24
Cezar708 zróbmy to na przykładzie...
na przykład mam plik... 6.01.2008, 17:47:53
Cezar708 oki świetnie,
tylko że jeszcze nie wiem jak rozwi... 16.03.2008, 17:50:51 ![]() ![]() |
|
Aktualny czas: 27.12.2025 - 18:52 |