Zapis danych pobranych z bazy danych w pliku w formacie dokumentu XML

Opis zadania

Należy napisać funkcję, która będzie zapisywała wynik dowolnego zapytania SQL-owego w pliku w formacie XML.

Następnie należy sprawdzić poprawność działania funkcji wyświetlając zawartość pliku w oknie przeglądarki internetowej.

Pomocne informacje

1. Składnia dokumentu XML

Wynikiem zapytania napisanego w języku SQL jest tabela. Traktując każdy wiersz takiej tabeli jako węzeł dokumentu XML-owego, a poszczególne wartości jako elementy tego węzła, można napisać funkcję, która zapisze wynik zapytania w postaci poprawnego dokumentu XML. Należy pamiętać, że każdy znacznik musi być zamknięty oraz że dokument XML musi mieć znacznik główny.

Przykład:

Zapytanie zwróciło następującą tabelę:

IdPracownika

Nazwisko

27

Nowak

34

Kowalski

Poprawnym plikiem XML zawierającym te dane jest:

<Pracownicy>

<P1>

<IdPracownika>27</IdPracownika>

<Nazwisko>Nowak</Nazwisko>

</P1>

<P2>

<IdPracownika>34</IdPracownika>

<Nazwisko>Kowalski</Nazwisko>

</P2>

</Pracownicy>

Nazwy pól oraz wartości można pobrać za pośrednictwem zmiennej zawierającej tabelę będącą wynikiem zapytania za pomocą funkcji pg_result (wartość) oraz pg_field_name (nazwy pól), których składnia jest następująca (funkcje te zostały opisane w pliku pomocy do zajęć dotyczących wykorzystania PHP do operowania na bazie danych):

pg_result($r, numer_wiersza, numer_kolumny)

pg_field_name($r, nr_kolumny)

gdzie:

$r - nazwa kursora zawierającego wynik zapytania wybierającego

2. Funkcje PHP do operowania na plikach

Zapis do pliku jest możliwy, gdy plik jest umieszczony w katalogu mającym uprawnienia co najmniej 703.

Wybrane funkcje wykorzystywane do operacji na plikach dyskowych:

- otwarcie pliku do zapisu (jeśli plik nie istnieje, jest tworzony):

$f = fopen(”katalog/plik”, ”w”)

Wynik działania funkcji należy przypisać zmiennej plikowej, za pośrednictwem której w dalszej części funkcji następuje odwołanie do pliku.

- zamknięcie pliku:

fclose($f)

Jako parametr funkcji podaje się nazwę zmiennej plikowej. Po zakończeniu przetwarzania plik musi zostać zamknięty.

- zapis na koniec pliku:

fwrite($f, ”tekst”)

gdzie $f to zmienna plikowa związana z plikiem, w którym zapisywane są dane, a ”tekst” to wyrażenie, które ma zostać zapisane w pliku.

- aby plik był bardziej czytelny i uporządkowany można używać znaczników:

\n - znacznik końca wiersza

\t - znacznik tabulatora

Przykład:

fwrite($f, ”abc\n\txyz”);

Do pliku związanego ze zmienną plikową $f zapisany zostanie tekst abc, następnie wstawiony zostanie znak końca wiersza. W nowym wierszu wstawiony będzie tabulator i tekst xyz. Jeśli tak utworzony plik zostanie wyświetlony (np. w oknie przeglądarki internetowej), to pojawi się w następującej postaci:

abc

xyz

Przykładowy algorytm rozwiązania zadania:

  1. W katalogu public_html utwórz katalog o nazwie XML i nadaj mu uprawnienia 703
    (rwx----wx)

  2. W katalogu public_html utwórz program w PHP o nazwie sql2xml.php, który:

  1. Aby uruchomić napisany program z poziomu katalogu public_html programie putty wydaj polecenie:

php sql2xml.php

Jeśli program działa poprawnie, w katalogu XML powinien zostać utworzony plik zawierający wynik zapytania zapisany w formacie XML.

  1. Jeśli zadanie zostanie wykonane poprawnie, po wpisaniu w przeglądarce adresu:

ie.uek.krakow.pl/~login/XML/plik.xml

na ekranie powinien pojawić się plik zawierający dane będące wynikiem zapytania zapisane w formacie XML.