Vous êtes sur la page 1sur 35

IDZ DO

PRZYKADOWY ROZDZIA
SPIS TRECI

KATALOG KSIEK
KATALOG ONLINE
ZAMW DRUKOWANY KATALOG

TWJ KOSZYK
DODAJ DO KOSZYKA

CENNIK I INFORMACJE
ZAMW INFORMACJE
O NOWOCIACH
ZAMW CENNIK

CZYTELNIA
FRAGMENTY KSIEK ONLINE

Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl

Flash i XML.

Techniki zaawansowane
Tytu orygianu: Flash XML StudioLab
Autorzy: Ian Tindale, Paul Macdonald, James Rowley
Tumaczenie: Marek Binkowski
ISBN: 83-7197-657-7
Format: B5 Stron: 452

Ta ksika ukazuje nietypowe spojrzenie na specyficzn cech Flasha 5 moliwo


wsppracy z jzykiem XML. Do zrozumienia jej treci przydatne jest opanowanie
podstaw pracy z Flashem 5 i jzykiem programowania ActionScript.
Wsppraca Flasha 5 z jzykiem XML daje ogromne moliwoci, na ktrych
skoncentrujemy si w tej ksice. Nie zakadamy, e miae wczeniej jakikolwiek
kontakt z jzykiem XML. W pierwszych rozdziaach omwino elementarne zagadnienia
zwizane z tym jzykiem. Integraln czci ksiki jest praktyczne studium, ktrego
czci prezentujemy w kolejnych rozdziaach. ledzc ich tre, szybko zdobdziesz
umiejtnoci potrzebne do wykorzystania wszechstronnych zastosowa jzyka XML we
Flashu. W dalszych rozdziaach zawarto studium odejdzie nieco od treci rozdziaw,
lecz nie przejmuj si przez cay czas bdziesz zdobywa now wiedz i umiejtnoci,
dziki ktrym bdziesz mg tworzy interesujce aplikacje, korzystajce z technologii
Flash XML.
W ostatnich trzech rozdziaach zaprezentujemy prawdziwie dynamiczne zastosowania,
moliwe wwczas, gdy aplikacje porzucaj ograniczenia pojedynczego komputera
i zaczynaj dziaa w sieci. Korzystaj bez ogranicze z prezentowanych przykadw
i adaptuj je do wasnych potrzeb. Poznaj pasjonujce moliwoci wsppracy jzyka
XML i Flasha.

O Autorach .................................................................................................................10
Wstp ...........................................................................................................................11
Konwencje typograficzne ..................................................................................................... 11
Pliki na FTP .......................................................................................................................... 13
Wydawca oryginau .............................................................................................................. 13

Rozdzia 1. Wprowadzenie do jzyka XML.............................................................15


XML co, gdzie, kiedy, dlaczego? .................................................................................... 16
Odpowiedni jzyk do odpowiednich zastosowa ...........................................................................17
Rodzinne powizania ......................................................................................................................17

Reguy poprawnoci skadniowej dokumentu XML ............................................................ 19


Domykanie elementw....................................................................................................................21
Elementy nie zachodz na siebie.....................................................................................................21
Komentarze .....................................................................................................................................21
Wartoci atrybutw umieszczamy w cudzysowach .......................................................................22
Atrybuty czy dane?..........................................................................................................................22
Nazwy elementw ...........................................................................................................................23

Parsowanie wzw............................................................................................................... 23
Reprezentacje rzeczywistoci..........................................................................................................24
Rodzice i dzieci ...............................................................................................................................25

Dokument XML poprawny strukturalnie co to takiego?................................................. 28


Dlaczego HTML to nie to samo co XML? ........................................................................... 29
Dlaczego warto oddzieli sposb prezentacji od jej zawartoci?....................................................29
Jak rozwizano t kwesti w jzyku XML?....................................................................................31

Historia znacznikw.............................................................................................................. 33
Historia si powtarza .......................................................................................................................35
Od SGML do XML .........................................................................................................................35
Logika zbudowana ze sw .............................................................................................................36
Co to znaczy aplikacja XML? .....................................................................................................37
Dane a dokument.............................................................................................................................38
Pliki XML jako bazy danych...........................................................................................................39
Zamt z oprogramowaniem poredniczcym..................................................................................39
Zupenie nowy jzyk .......................................................................................................................40
Dziedzina, w ktrej si specjalizujesz.............................................................................................41
Uwanie dobieraj sowa ..................................................................................................................41
Jakie jest znaczenie sw? ...............................................................................................................42

Studium karty tarota......................................................................................................... 43

Flash i XML. Techniki zaawansowane


Talia kart..........................................................................................................................................43
Gramy pen tali ............................................................................................................................45
Podzielone opinie ............................................................................................................................46
Sprbujmy inaczej...........................................................................................................................47

Rozdzia 2. Model dokumentu XML ........................................................................51


Potrzebny drwal od zaraz ...........................................................................................................51
Wzy...............................................................................................................................................52
Szczyt drzewa..................................................................................................................................53
Chodzimy po drzewie......................................................................................................................54
Jak radzi sobie z biaymi znakami? ...............................................................................................57

Dlaczego musimy chodzi po drzewie ................................................................................. 59


Polowanie na wze .........................................................................................................................59
Jak si porusza ...............................................................................................................................61
W stylu arkusza ...............................................................................................................................62
Jak zapamita informacj?.............................................................................................................66
Zostawi po sobie lad ....................................................................................................................67
Odbudowywanie drzew...................................................................................................................68
Myl lokalnie...................................................................................................................................68

Studium karty tarota......................................................................................................... 69


Nowe spojrzenie ..............................................................................................................................71
Wygld kart .....................................................................................................................................74
Opiszmy to ......................................................................................................................................75
Zbliaj si i oddalaj......................................................................................................................76
Prze tali, wybierz kart .............................................................................................................77
Poka si i id na miejsce................................................................................................................79
Ukad grafiki na karcie ....................................................................................................................82

Rozdzia 3. Parsowanie XML....................................................................................85


Parsowanie XML .................................................................................................................. 85
Zainstaluj i uruchom........................................................................................................................86
Pan i serwer .....................................................................................................................................87
Poznajemy obiektowy model dokumentu .......................................................................................88
Inne obiektowe modele dokumentw..............................................................................................89
Model DOM we Flashu...................................................................................................................90
Co by byo bez modelu DOM?........................................................................................................91
Oto analogia ....................................................................................................................................92
SAX .................................................................................................................................................93
Przeksztacanie kodu XML po stronie serwera...............................................................................94
Rekonstrukcja dokumentu XML .....................................................................................................95

Kanoniczny dokument XML ................................................................................................ 95


Nazwy takie jak w modelu DOM....................................................................................................97
cieka dokdkolwiek.....................................................................................................................97

Jeszcze raz co to s wzy? ............................................................................................ 101


Na ktrym poziomie jestemy? .....................................................................................................103

Studium karty tarota....................................................................................................... 104


Rysowanie obrazkw ....................................................................................................................104

Spis treci

Sowa kluczowe.............................................................................................................................106
Co zamierzamy? ............................................................................................................................106
Mniejsze, paskie drzewo ..............................................................................................................108
Stan przed i po konwersji ..............................................................................................................109

Rozdzia 4. Dane XML.............................................................................................111


Element czy atrybut?........................................................................................................... 111
Co przemawia za elementem.........................................................................................................111
Co przemawia za atrybutem ..........................................................................................................111
Dobre atrybuty...............................................................................................................................113
Wracamy do elementu...................................................................................................................115

Szeregowanie ...................................................................................................................... 116


Skadowanie ..................................................................................................................................117
Transmisja .....................................................................................................................................118
Opakowywanie..............................................................................................................................118
Bazy danych raz jeszcze................................................................................................................118

Obiekty danych ................................................................................................................... 119


Jak maszyna z maszyn.................................................................................................................120
Zdalne wywoywanie procedur .....................................................................................................120
RPC i Internet................................................................................................................................121

Poznajemy SOAP................................................................................................................ 122


Wiadomoci SOAP .......................................................................................................................122
Protokoy i specyfikacje ................................................................................................................123
Jakie zapytania? ...........................................................................................................................124
Typy danych w SOAP...................................................................................................................124

Alice, AIML i sztuczna inteligencja ................................................................................... 125


Alice ..............................................................................................................................................125

Studium karty tarota....................................................................................................... 132


Konwersja......................................................................................................................................133

Rozdzia 5. Integracja Flasha z aplikacjami sieciowymi ......................................137


Flash zmienia reguy .....................................................................................................................138
Powrt do korzeni .........................................................................................................................138
Struktura wizualna.........................................................................................................................139
Gdzie jest miejsce dla Flasha ........................................................................................................141
Jak Flash radzi sobie z jzykiem XML? .......................................................................................141
Skd pomys na XML we Flashu? ................................................................................................142
Lecz dlaczego XML? ....................................................................................................................144
Co Flash moe zrobi z dokumentem XML?................................................................................145
Integracja Flasha z aplikacjami sieciowymi..................................................................................145
Pobieranie i wysyanie danych ......................................................................................................146
Niewiadomo stanu ....................................................................................................................147
Metody GET i POST we Flashu ...................................................................................................148
Kodowanie URL ...........................................................................................................................149
Akcja getURL................................................................................................................................150
Akcja loadMovie ...........................................................................................................................151

Jeszcze dokadniej, co Flash moe zrobi z dokumentem XML? ...................................... 151


Co to jest obiekt?...........................................................................................................................152
Nowe obiekty ................................................................................................................................153

Flash i XML. Techniki zaawansowane


Co to jest klasa?.............................................................................................................................153
Co to jest konstruktor? ..................................................................................................................154
Co to jest klonowanie? ..................................................................................................................155

Czci caoci...................................................................................................................... 155


Argumenty.....................................................................................................................................156
Waciwoci...................................................................................................................................156
Metody ..........................................................................................................................................158
Detektory zdarze..........................................................................................................................159

Studium karty tarota....................................................................................................... 160


Ludzie s ludmi ...........................................................................................................................161
Grafiki stanowisk w maych arkanach ..........................................................................................161
Grafiki kolorw w maych arkanach .............................................................................................162
Wielkie arkana...............................................................................................................................164

Percepcja ............................................................................................................................. 165

Rozdzia 6. ActionScript i XML..............................................................................167


Cigi znakw.................................................................................................................................167
Konkatenacja .................................................................................................................................168
Porwnanie....................................................................................................................................169
Indeksowanie.................................................................................................................................170
Podcigi .........................................................................................................................................170
Parsowanie liczb............................................................................................................................173

Studium karty tarota....................................................................................................... 173


Znale kolor.................................................................................................................................174
Wyniki ...........................................................................................................................................177
Sprawdzanie dzieci........................................................................................................................181
Odnajdywanie arkanw.................................................................................................................184

Rozdzia 7. Metody obiektu XML...........................................................................201


Waciwoci klonw......................................................................................................................201
Waciwoci obiektu MovieClip ...................................................................................................202
Metody obiektu MovieClip ...........................................................................................................203
Jak dziaaj konstruktory...............................................................................................................204
Metody i waciwoci w obiekcie XML........................................................................................205
Przydatna ptla for in ....................................................................................................................206

Waciwoci zwizane z wzami....................................................................................... 207


Studium karty tarota....................................................................................................... 209
Usuwanie obiektu XML ................................................................................................................210
Czy to rzeczywicie losowanie?....................................................................................................211
Po co dodatkowa zmienna magicNumber? ...................................................................................213
Dynamiczne pola tekstowe............................................................................................................214
Zmienna pickACard ......................................................................................................................219
Jakie arkana? .................................................................................................................................220
Wyszukiwanie elementu <po> .................................................................................................224
Wyszukiwanie elementw <x> i <y>............................................................................................229

Rozdzia 8. Pobieranie i przesyanie danych XML ...............................................233


Odtwarzacz Flasha nie potrafi zapisywa plikw .........................................................................234
Tunele i protok HTTP ................................................................................................................235
SOAP.............................................................................................................................................237

Spis treci

Interfejs edycyjny ..........................................................................................................................237

Studium karty tarota....................................................................................................... 239


Symbole z tem kart.......................................................................................................................239
Karty na st ..................................................................................................................................245
Gwna funkcja .............................................................................................................................248
Tablica nadziei ..............................................................................................................................251
Podgldamy dziaanie utworzonych funkcji .................................................................................252
Wszystko zaley od kart................................................................................................................258

Rozdzia 9. Zgbiamy obiekt XML........................................................................263


Dlaczego obiekty s tak wane?....................................................................................................263
Kiedy warto? .................................................................................................................................264
Praca z czarnymi skrzynkami........................................................................................................265
Waciwo prototype ...................................................................................................................265
Szczegowe omwienie pozostaych elementw obiektu XML..................................................266

Studium karty tarota....................................................................................................... 272


Konstruktor....................................................................................................................................273
Losowanie liczby...........................................................................................................................273
Dlaczego to robimy? .....................................................................................................................275

Rozdzia 10. Detektory zdarze ..............................................................................279


Stany..............................................................................................................................................279
Bit po bicie ....................................................................................................................................280
By sobie jzyk Forth ....................................................................................................................281
Programowanie zorientowane na zdarzenia ..................................................................................282
Sekwencje i klatki .........................................................................................................................282
Spumy psy..................................................................................................................................284
Obiekt XML ..................................................................................................................................284
Obiekt XMLSocket .......................................................................................................................286

Studium karty tarota....................................................................................................... 287


Szukamy waciwych sw............................................................................................................287
Teraz kod.......................................................................................................................................293
Ukadanie zda ..............................................................................................................................298
Omwienie funkcji displayKeywords() ........................................................................................300
Mamy zestawy sw kluczowych..................................................................................................303
Tasowanie sw .............................................................................................................................305
Puste elementy...............................................................................................................................308
Przegldanie pliku .........................................................................................................................310

Rozdzia 11. Gniazda XML .....................................................................................321


Do czego mog uy serwera XML? ............................................................................................322

Prosty serwer pogawdek ................................................................................................... 323


Poszerzanie moliwoci ...................................................................................................... 333
Flash ..............................................................................................................................................333
Strona serwera ...............................................................................................................................336

Uwagi dotyczce pokoju pogawdek ................................................................................. 338


A teraz co z zupenie innej beczki..................................................................................... 339
Po stronie Flasha ...........................................................................................................................340
Po stronie serwera .........................................................................................................................343

Rozdzia 12. Flash, XML i bazy danych.................................................................347

Flash i XML. Techniki zaawansowane


Bazy danych........................................................................................................................ 348
Pierwsze polecenia SQL................................................................................................................350
Szafa grajca..................................................................................................................................351

Tworzenie skryptw po stronie serwera ............................................................................. 355


Jak zainstalowa PHP....................................................................................................................356
Wsppraca MySQL, PHP i Apache .............................................................................................357

Flash .................................................................................................................................... 359


Nasz pierwszy plik PHP ................................................................................................................360

czenie skryptu z baz danych ......................................................................................... 363


Generowanie kodu XML .................................................................................................... 367
Generowanie kodu XML na podstawie bazy danych ......................................................... 368
Jak dotrze do informacji? ............................................................................................................369
Czytanie drzewa XML ..................................................................................................................371
Rozwizywanie problemw ..........................................................................................................372

Rozdzia 13. Nowe kierunki.....................................................................................375


Przykad pierwszy aktualnoci....................................................................................... 376
Przykad drugi arkusze Excela....................................................................................... 378
Przykad trzeci czytanie katalogu .................................................................................. 384
Kocowe przemylenia....................................................................................................... 384
Konkluzja ......................................................................................................................................385

Dodatek A DTD, schematy i XSL ...........................................................................387


Co to jest DTD ..............................................................................................................................387
Co to jest schemat i jaka jest rnica ............................................................................................389
Jaka jest rnica w skadni ............................................................................................................389
Jakie s zalety schematw.............................................................................................................390
Dlaczego mielibymy potrzebowa schematu lub DTD ...............................................................391
Prosty przykad definicji DTD ......................................................................................................392
Prosty przykad schematu..............................................................................................................394

Przestrzenie nazw................................................................................................................ 395


Wrmy do schematu....................................................................................................................396

XSLT................................................................................................................................... 399
Jaka jest rnica pomidzy formatem XSL a XSLT.....................................................................399
Przeksztacenia ..............................................................................................................................399
Inna klasa.......................................................................................................................................405

Obiekty formatujce............................................................................................................ 406


Bloki, wiersze i co jeszcze...........................................................................................................407

Dodatek B Wprowadzenie do jzyka Perl..............................................................409


Pierwsze kroki..................................................................................................................... 410
Podstawy jzyka Perl .......................................................................................................... 411
Zmienne w jzyku Perl..................................................................................................................412
Operatory.......................................................................................................................................413
Operatory tekstowe........................................................................................................................414

Spis treci

Sterowanie wykonywaniem skryptu .............................................................................................415


Warunki zoone............................................................................................................................417
Ptle ...............................................................................................................................................418

Praca z zewntrznymi plikami ............................................................................................ 419


Perl i CGI ............................................................................................................................ 421
Podprogramy....................................................................................................................... 422
Kilka uytecznych podprogramw................................................................................................424

Moduy ................................................................................................................................ 427


Konkluzja ............................................................................................................................ 427

Dodatek C Zasoby internetowe...............................................................................429


Spoecznoci flashowe ........................................................................................................ 429
Strony zwizane z serwerami ............................................................................................. 430
Inne interesujce rozwizania............................................................................................. 430
Samouczki........................................................................................................................... 431
Witryny dotyczce jzyka XML......................................................................................... 431

Dodatek D Polskie znaki ..........................................................................................433


Flash 5 ................................................................................................................................. 433
Dokumenty XML................................................................................................................ 435
Skrypty serwera .................................................................................................................. 435
Konwerter ........................................................................................................................... 436

Skorowidz..................................................................................................................439

Gdy tworzysz witryny internetowe we Flashu, prdzej czy pniej bdziesz zmuszony
do komunikacji z bazami danych. Obawiam si, e przed tym nie ma ucieczki. Jeli jeste
podobny do mnie, pewnie mylisz, e programowanie baz danych jest niesamowicie
nudnym procesem, sprawiajcym rado jedynie zaronitym guru, bawicym si gigantycznymi serwerami. Przyszed jednak moment w mojej karierze, gdy szybko zmieniem
zdanie. By moe nadszed czas, by i ty je zmieni.
Statyczne dokumenty, czy to w formacie HTML czy XML, po prostu nie nadaj si do
niektrych zastosowa sieciowych, wymagajcych wywietlania dynamicznych, cigle
aktualizowanych materiaw. Niektrzy analitycy twierdz, e Internet stopniowo staje
si interfejsem dla materiaw, ktre zwykle s przechowywane w bazach danych.
Wiele witryn internetowych, ktre utworzysz w przyszoci, bdzie wymagao zapamitania informacji wpisywanych przez uytkownikw w bazie danych. Oczywicie
pniej dane zapisane w bazie trzeba bdzie w jaki sposb wywietli czyli popyn
w drug stron, do dynamicznej witryny. Pracujc we Flashu, bdziesz mg przygotowa dla danych niemal dowolny interfejs, jaki ci przyjdzie do gowy.
Poczenie witryn internetowych z bazami danych mona interpretowa z rnej perspektywy:
Uytkowania baz danych do dostarczania materiaw witrynie internetowej.
Uytkowania witryn w celu udostpnienia uytkownikom bazy danych.
Pierwsze podejcie, czyli korzystanie z baz danych, umoliwia tworzenie witryn, ktre
oferuj uytkownikowi bezproblemowy dostp do danych zawartych w bazie i ktrych
utrzymanie i aktualizacja nie jest trudna. Drugie podejcie, czyli uytkowanie witryn jako
interfejsw bazy danych umoliwia projektantowi tworzenie przyjaznych, midzyplatformowych frontonw udostpniajcych dane uytkownikom w dowolnym miejscu na wiecie.
W tym rozdziale pokaemy, jak przygotowa wszystkie elementy niezbdne do uruchomienia aplikacji flashowej, wywietlajcej materiay pochodzce z bazy danych. Waciwie tytu tego rozdziau powinien brzmie Bazy danych, XML i Flash, poniewa w takiej
kolejnoci zajmiemy si tymi zagadnieniami.

348

Flash i XML. Techniki zaawansowane

Bazy danych
Na rynku oprogramowania jest dostpnych wiele rnych programw baz danych, za
wybr odpowiedniego wie si z rozwaeniem takich aspektw jak koszty, elastyczno,
wydajno i rozszerzalno. Niektre z nich s rwnie atwiejsze do opanowania od innych.
Do najbardziej znanych komercyjnych programw baz danych nale Oracle, Microsoft
SQL Server i Postgres. Jednak dostpnych jest rwnie mnstwo darmowych programw baz danych, ktre znakomicie nadaj si do wikszoci zastosowa. Generalnie,
jeli zamierzasz korzysta z systemu RDBMS (Relational DataBase Management System
system obsugi relacyjnej bazy danych), musi on by zgodny z jzykiem SQL.
RDBMS to taki system obsugi bazy danych, ktry przechowuje dane w postaci powizanych ze sob tabel. Istnieje jedynie kilka regu, ktrych naley przestrzega, by utworzy
dobr relacyjn baz danych (dokadniej, jest ich dwanacie (lub trzynacie, w zalenoci,
z kim rozmawiasz); poszukaj hasa Dr E F Codd w dobrej wyszukiwarce internetowej).
Jzyk SQL (Structured Query Language strukturalny jzyk zapyta) stanowi narzdzie suce do formuowania zapyta dla zgodnych z nim baz danych.
W tym rozdziale uyjemy oprogramowania MySQL, jednego z najpopularniejszych
darmowych systemw obsugi baz danych, ktrego opanowanie jest proste, lecz potrafi
on realizowa praktycznie dowolne zadania.
Oprogramowanie MySQL moesz pobra ze strony www.mysql.com. W przykadach
bdziemy korzysta z wersji dla systemu Windows, jednak MySQL jest dostpny rwnie dla systemu MacOS X.
W systemie Windows wystarczy uruchomi program instalacyjny, ktry instaluje serwer
bazy danych i klienta, za pomoc ktrego mona si z ni czy. Domylnie instalator
umieszcza oprogramowanie w katalogu c:\mysql. Aby nie utrudnia sobie ycia, zainstaluj oprogramowanie w tym domylnym katalogu; jeli jednak chcesz je zainstalowa
gdzie indziej, podczas instalacji moesz wybra katalog docelowy.
Ostatnia dystrybucja MySQL zawiera a pi rwnych serwerw, przy czym wszystkie
powinny dziaa na typowym komputerze PC.
Uruchom program winmysqladmin.exe (zawarty w katalogu c:\mysql\bin). Powinno si
pojawi okno dialogowe z prob o podanie nazwy uytkownika i hasa (rysunek 12.1).
Wpisz nazw i haso, ktrego chcesz uywa. Nastpnie powinno si pojawi gwne
okno sterowania1 (rysunek 12.2).
Zielone wiato drogowe w prawym grnym naroniku oznacza, e serwer jest uruchomiony i wszystko dziaa poprawnie.
1

Jeli okno to automatycznie si minimalizuje, moesz je wywietli, klikajc na pasku zada ikon wiate
drogowych i z menu, ktre si pojawi, wybierajc polecenie Show Me przyp. tum.

Rozdzia 12. K Flash, XML i bazy danych

349

Rysunek 12.1.

Rysunek 12.2.

Baz danych MySQL, ktrej tu uywamy, mona podzieli na trzy czci:


Sama baza danych
Serwer
Klient
Rzeczywiste bazy danych, z ktrym bdziemy korzysta, musz by dostpne jednoczenie dla duej liczby zewntrznych uytkownikw i oferowa rne rodzaje pocze,
dlatego stosuje si w nich architektur klient-serwer. Z baz moesz czy wiele rnych
klientw, lecz dystrybucja MySQL jest wyposaona we wasnego klienta, ktrego moesz
poczy z baz danych MySQL na dowolnym komputerze.
W tym celu musisz okreli w kliencie, z jakim serwerem bazy danych chcesz si poczy, kim jeste i czy chcesz posugiwa si hasem dostpu.
(Jeli uruchamiasz klienta na tym samym komputerze, na ktrym jest uruchomiony serwer,
nie musisz podawa nazwy komputera macierzystego (hosta), cho nie jest to zabronione).

350

Flash i XML. Techniki zaawansowane



       !  " #$  $%

Wszystkie te parametry s opcjonalne. Prawd mwic, bezporednio po instalacji moesz


poczy si z serwerem, stosujc proste polecenie:



Rysunek 12.3.

Po zainstalowaniu oprogramowania MySQL, pliki pomocy w formacie HTML mona


znale w katalogu c:\mysql\docs. Jeli preferujesz inne formaty dokumentw, odpowiednie pliki pomocy moesz pobra z witryny MySQL. Ja korzystam gwnie z plikw PDF.
Trzeci rozdzia dokumentacji zawiera wprowadzenie do jzyka SQL (w jzyku angielskim), wraz z opisem poszczeglnych jego elementw.
Poniej przedstawi podstawowe polecenia SQL, abymy mogli rozpocz prac.

Pierwsze polecenia SQL


Gdy jeste ju poczony z serwerem, powiniene si rozejrze po otoczeniu. Aby sprawdzi, jakie bazy danych s dostpne, uyj polecenia:
 $ % &'

Kade polecenie SQL w kliencie powinno by zakoczone rednikiem . Jeli po wpisaniu


polecenia nie pojawiaj si adne rezultaty, sprawd, czy wpisae rednik (rysunek 12.4).
Rysunek 12.4.

Jak zobaczysz, bezporednio po instalacji s dostpne dwie bazy danych:  oraz
. Pierwsza z nich jest odpowiedzialna za wszystkie przywileje dostpu do bazy danych. MySQL korzysta z systemu przywilejw okrelajcego, co moe robi konkretny

Rozdzia 12. K Flash, XML i bazy danych

351

uytkownik z konkretn baz danych na danym komputerze macierzystym. Jeli zamierzasz


uruchomi baz danych w Internecie, powiniene zapozna si z reguami przywilejw
jzyka MySQL. Instrukcje, ktre tu przedstawiamy, peni jedynie rol wprowadzenia.
Jeli uruchamiasz baz danych na komputerze, ktry jest bezporednio widoczny w Internecie, pierwsz czynnoci powinna by zmiana hasa administratora.
Moesz to zrobi w wierszu polece, korzystajc z narzdzia 
 . Aby zamkn
klienta MySQL, uyj polecenia:
 
%

Nastpnie zmie haso administratora w nastpujcy sposb:




( )$$% #$ $*&#$

Szafa grajca
Utwrzmy now baz danych o nazwie  (szafa grajca).
Pocz si z serwerem MySQL za pomoc klienta MySQL i wpisz polecenie  
 
   (rysunek 12.5).
Rysunek 12.5.

Od tej chwili posiadasz now baz danych, nie zawierajc na razie adnych tabel.
Utwrzmy tabel o nazwie   (pliki). Tabela bdzie zawieraa trzy pola numer
identyfikacyjny, pole zawierajce nazw oraz plik zawierajcy utwory. Musimy okreli
nazwy poszczeglnych pl, typy danych w nich przechowywanych oraz maksymalny
rozmiar zawartoci kadego pola.
MySQL posiada kilka typw danych, lecz zwykle korzystamy z danych numerycznych
lub tekstowych.
 

Liczba cakowita z przedziau od 2147483648 do 2147483647 (jeli posiada znak)

  

Cig znakw o zmiennej dugoci (od 1 do 255 znakw)



(ang. binary large object) z tego typu danych korzystamy wwczas, gdy pole
ma zawiera wicej ni 255 znakw

Opis pozostaych typw danych znajdziesz w dokumentacji MySQL.

352

Flash i XML. Techniki zaawansowane


Pierwszemu polu nadamy nazw
. Bdzie ono zawierao unikalny klucz identyfikujcy
kady rekord. MySQL moe automatycznie zwiksza warto tego identyfikatora, zatem
nie musisz si zastanawia, jaki by identyfikator poprzedniego rekordu.
 & *+& $,'
 )&%& % & -
& .

% %$/
)&& % $%  ")
) +&0'

Gdy okrelamy pole jako  , MySQL nie pozwala doda rekordu do bazy, jeli to
pole nie posiada zawartoci. Jest to uyteczne w sytuacji, gdy wypeniasz wane pola,
takie jak adres e-mail, lub gdy zamierzasz za pomoc tego pola powiza dwie tabele.
Lecz nie wyprzedzajmy.
Klient MySQL jest dosy frustrujcy, poniewa w cisy sposb sprawdza skadni. To
jeden z powodw tworzenia skryptw, ktre zawieraj wszystkie potrzebne polecenia
SQL. Inny powd jest taki, e nigdy nie wiesz, kiedy bdziesz musia odtworzy tabel.
Aby formuowa zapytania, musisz mie utworzon baz danych, na ktrej zapytania bd
operoway. Zastosuj ponisz skadni (sowo kluczowe   zastp ciek, wskazujc plik skryptu MySQL):
 / /   1"%1 2*+)"%3

W naszym przykadzie umiecimy skrypt create_jukebox.sql w katalogu mysql, zatem


moesz uy polecenia:

 *+& $,  )&%&/*+& $,3

To polecenie spowoduje wykonanie polece zawartych w pliku skryptu, przy czym bd


one operoway na podanej bazie danych (rysunek 12.6).
Rysunek 12.6.

Oto skrypt SQL, ktry tworzy tabel bazy danych  i wypenia j pewnymi danymi.
Skrypt ten mieci si w pliku create_jukebox.sql.
4 $ *&% +)"% 5673 $)&
&
8
& +)"%2 *&% 9$ &
4 "$
&8 $: ;%$ %)&  $%): % &&  "&#
: *&
4  
%&%$
<  %&8 $")28
: ;  
4  +)"
& $8& 8: $$  "$&&= 5673
& *+& $,'
)&%& % & -
& .

%.>0 %$/
)&& % $%  ")
) +&0'
%&) % & -
&  & ?)).@A0 $% '
%&) % & -
&  %)+ ?)).@A0 $% '

&)%
%$ -
& ?& .A<B & ) %B< B%& &  $- & &B0'

&)%
%$ -
& ?& .A<BC&$ D)+&)B<BD %& "&B0'

&)%
%$ -
& ?& .A<BE$ C)% B<BF  D&& $& $&B0'

&)%
%$ -
& ?& .A<B  C$ B<BG) 5$$ .H)&0B0'

Po utworzeniu bazy danych moesz formuowa zapytania SQL, by j przetestowa.

Rozdzia 12. K Flash, XML i bazy danych

353

Oto kilka polece SQL, z ktrych czsto korzystam. Wpisz je i zobacz, jaki wynik uzyskasz.

Funkcja select
Rozpocznijmy od takiego prostego zapytania (rysunek 12.7):
Rysunek 12.7.

&&% I -)$ -
&'

Jak wida, to zapytanie powoduje wywietlenie wszystkich rekordw, poniewa posuylimy si symbolem wieloznacznym .
Nastpne zapytanie wybiera z bazy tylko rekord, ktrego pole  zawiera nazw   
 ! (rysunek 12.8).
Rysunek 12.8.

&&% I -)$ -
& &)& & J K & ) %K'

Wreszcie, ponisze zapytanie wywietla wszystkie rekordy bazy danych, lecz zmienia
tytuy pl (rysunek 12.9).
Rysunek 12.9.

&&%
  %&/
< &  %&/ &< %)+  %&/%)+ -)$ -
&'

354

Flash i XML. Techniki zaawansowane

Funkcja update
Funkcja 
 suy do aktualizacji rekordw w tabeli. Ponisze polecenie we wszystkich rekordach tabeli   zmienia zawarto pola  na     !.
"%& -
& &% & J K & ) %K'

To polecenie zamienia warto pola  w rekordzie, ktrego pole


jest rwne 2.
"%& -
& &% & J K & ) %K &)&
JBLB'

Funkcja delete
Ta funkcja suy do usuwania rekordw z tabeli. Ponisze polecenie usuwa wszystkie
rekordy z tabeli  .
&&%& -)$ -
&'

Z kolei to polecenie usuwa rekordy, ktrych pole  ma warto     !.


&&%& -)$ -
& &)& &JB & ) %B'

Dosy rzadko uywam funkcji


 w skryptach uruchamianych w sieci. Wynika to
z kilku powodw.
Nie jest bezpiecznym rozwizaniem udzielanie anonimowemu uytkownikowi przywileju usuwania rekordw. Znacznie bezpieczniejsze jest utworzenie pola, penicego
funkcj znacznika aktywny-nieaktywny, ktry pozwoli uytkownikowi czasowo dezaktywowa rekord. Uzyskujemy bardzo podobny efekt, lecz nie wymaga on udzielania
uytkownikom tak wielkich przywilejw. Rozpocznij od minimalnych przywilejw i w miar potrzeb zwikszaj je; nigdy nie postpuj w przeciwnym kierunku. Wikszo baz danych,
ktre udostpniam, umoliwia anonimowym uytkownikom wybieranie (), wstawianie ( ) i aktualizacj rekordw (
).
Jeli naprawd chcesz usuwa rekordy, rb to z bezpiecznego komputera.

Funkcja drop
Tej funkcji uywaj z rozwag. Pozwala ona usuwa tabele, a nawet cae bazy danych.
Upewnij si, e wiesz, co robisz, gdy umoliwiasz anonimowym uytkownikom usuwanie
danych. Nigdy nie zezwalaj im na usuwanie caych baz danych.
Ponisze polecenie usuwa tabel  .
)$" % & -
&'

Natomiast ponisze polecenie usuwa baz danych o nazwie , wraz z jej tabelami
i ich zawartoci.

Rozdzia 12. K Flash, XML i bazy danych

355

Zanim przejdziemy do nastpnego podrozdziau, przyjrzyjmy si jeszcze dwm poleceniom SQL:


9) % &&%<
&)%< "%& $ *+& $,3-
& %$ & &)MB1B
& %
-
& 
B& "$)B'
9) % &&%<
&)%< "%& $ *+& $,3-
& %$ & &)MB$$%B
& %
-
& 
B& "$)B'

Powysze polecenia umoliwi klientowi uruchomionemu na innym komputerze wybieranie


(), wstawianie ( ) i aktualizacj (
) rekordw tabeli   w bazie danych
. Ponadto udostpni t baz danych skryptom uruchamianym z serwera.

Tworzenie skryptw po stronie serwera


Poznae ju podstawy pracy z klientem MySQL i formuowania zapyta do bazy danych.
Moemy zatem przej do nastpnego etapu i uruchomi po stronie serwera skrypty,
ktre bd asynchronicznie oddziaywa z baz danych.
Oznacza to, e bd one zdolne wczytywa materiay do filmu Flasha, a nastpnie
wstawia pozyskane dane do bazy danych. Jako uytkownik Flasha potrafisz ju posugiwa si jzykami skryptowymi, takimi jak choby jzyk ActionScript. Jednak jako jzyk
skryptw klienta, jest on obarczony pewnymi ograniczeniami, narzuconymi ze wzgldw
bezpieczestwa.
Oto ograniczenia, ktre nam najbardziej doskwieraj:
Brak dostpu do lokalnych plikw (w przeciwnym razie kady niezaufany program
mgby zapisywa lokalne pliki)
Brak dostpu do baz danych lub zasobw sieciowych
Skrypty serwerowe, jak si mona spodziewa, s uruchamiane na serwerze, a nie na
komputerze klienta. W konsekwencji, skrypty serwerowe (generalnie) s zaufane dla aplikacji, ktra je wywouje, czyli mona przyj, e to, co robi, pokrywa si z tym, co zrobiby sam.
Jednym z problemw zwizanych ze skryptami serwerowymi jest due obcienie pocze, gdy okrelone zadania musz by wykonywane na serwerze. Przykadem moe
by przesyanie formularza HTML. Gdy uytkownik nie wpisze imienia w odpowiednim polu (co jest wymagane), niekompletny formularz jest przesyany na serwer, gdzie
jest sprawdzany, a nastpnie odsyany z powrotem do klienta z prob o uzupenienie
brakujcego imienia. W rezultacie wikszo programistw decyduje si na rozwizania
czce zalety skryptw wykonywanych po stronie klienta i tych dziaajcych po stronie
serwera (chyba e s oni programistami Java).
Na polu jzykw serwerowych rwnie masz do dyspozycji bogaty wybr, a poniewa
w wikszoci z nich poradzono ju sobie z wikszoci bdw i innych problemw,
wybr najczciej opiera si gwnie na osobistych upodobaniach.

356

Flash i XML. Techniki zaawansowane


Oto najczciej brane pod uwag jzyki programowania skryptw serwerowych:
ASP (Active Server Pages aktywne strony serwera) zawierajce skrypty w takich
jzykach jak VBScript, CGI Perl, C czy skrypty shell systemu Unix
Mod-perl
Python
Server-Side JavaScript (serwerowy JavaScript)
PHP
ColdFusion
Tak bogaty wybr moe wywoa konsternacj, lecz jzyki te maj wiele cech wsplnych.
Ponadto istnieje wiele narzdzi umoliwiajcych konwersj skryptw z jednego jzyka
skryptowego na inny. Moim osobistym faworytem jest PHP jzyk bardzo atwy do
opanowania, z doskona obsug baz danych. Jest on absolutnie darmowy.
W poniszych przykadach posuymy si jzykiem PHP.

Jak zainstalowa PHP


Najnowsz wersj dystrybucji PHP moesz pobra z witryny www.php.net. Posiada ona
wbudowan obsug bazy danych MySQL oraz kilku rnych serwerw.
Doskonaym uatwieniem jest dokumentacja jzyka PHP, dostpna na wspomnianej
witrynie. Zawiera ona komentarze uytkownikw na temat wszystkiego, od instalacji po
kwestie zwizane z poszczeglnymi funkcjami.
Tworzenie skryptw serwerowych jest nierozerwalnie zwizane z oprogramowaniem
serwera sieciowego, a na tym polu rwnie mamy kilka opcji do wyboru. Uprocimy
sobie ycie, wybierajc oprogramowanie serwerowe najbardziej popularne w Internecie
Apache. Jzyk PHP jest dostpny na swej witrynie w dwch odmianach, z ktrych
jedna jest od razu zabudowana w serwer Apache, jednak jeli jeste uytkownikiem
Windows, musisz skorzysta z wersji CGI.
Oprogramowanie serwerowe Apache moesz pobra z witryny www.apache.org. Witryna ta
jest jednoczenie sercem spoecznoci, zaangaowanej w wiele innych projektw (w tym
bardzo interesujce parsery Java XML). Projekt serwera sieciowego Apache jest znany
pod nazw HTTPD (taka jest nazwa serwera pod systemem Linux).
Jeli korzystasz z systemu Windows, pobierz binarn wersj dystrybucji win32, ktr
znajdziesz w podkatalogu binaries. Niedawno zaktualizowano instalatory Apache i teraz
korzystaj one w systemie Windows ze zintegrowanego instalatora. W zwizku z tym,
jeli korzystasz z jednej ze starszych wersji systemu Windows, by moe bdziesz musia
pobra rwnie ostatni wersj pakietu Windows Installer. Odnoniki do tego pakietu
znajduj si na stronie udostpniajcej dystrybucje Apache.
W czasie pisania tego tekstu najnowsz wersj serwera Apache bya wersja 1.3.22.

Rozdzia 12. K Flash, XML i bazy danych

357

Wsppraca MySQL, PHP i Apache


Kombinacja tych trzech komponentw zyskuje coraz wiksz popularno, za ich instalacja jest coraz atwiejsza. Gdy wykonasz ponisze kroki, za pi minut powiniene
dysponowa konfiguracj gotow do pracy. W razie napotkania problemw, poszukaj
wskazwek za pomoc wyszukiwarki Google lub innej.
1. Zainstaluj oprogramowanie MySQL. Wymaga to jedynie uruchomienia instalatora
i sprawdzenia, czy serwer dziaa. To zagadnienie ju opisalimy.
2. Zainstaluj serwer Apache. Tu rwnie wystarczy posuy si zwykym instalatorem
Windows.
W przypadku uruchamiania tego oprogramowania na prawdziwym serwerze
internetowym, program Apache poprosi o szczegy dotyczce domeny serwera,
jego nazwy w sieci oraz adresu e-mail administratora.
Jeli uruchamiasz ten serwer dla celw treningowych lub testowych, moesz poda
dowoln domen; podaj adres IP 127.0.0.1 (adres lokalnego komputera, gdy nie jest
on poczony z sieci) lub twj rzeczywisty adres IP (jeli chcesz, by inne komputery
w sieci rwnie byy zdolne do wywietlania stron). Aby kontynuowa, podaj rwnie
swj adres e-mail.
Instalator utworzy skrty w menu Start i, jeli pracujesz w systemie Windows NT
lub Windows 2000, zaoferuje moliwo uruchomienia serwera jako serwisu. Na
mojej maszynie testowej wol uruchamia serwer Apache jako serwis. Moesz
rwnie skorzysta ze skrtw, sucych do testowania konfiguracji serwera.
Uruchom serwer, a nastpnie uyj adresu http://localhost/, http://127.0.0.1 lub
http://twj_adres_IP/, aby zobaczy testow stron Apache (rysunek 12.10).
Rysunek 12.10.

358

Flash i XML. Techniki zaawansowane


Jeeli czysz si z Internetem za pomoc modemu, by moe konieczna jest zmiana
pewnych ustawie usugi Dial-Up Networking (DUN), by pojawia si ta strona.
Jeli komputer prbuje wykrci numer dostpowy w czasie, gdy chcesz wywietli
stron testow Apache, otwrz okno Internet Options (Opcje internetowe) (na przykad
w przegldarce Internet Explorer wybierz polecenie Tools/Internet Explorer
(Narzdzia/Opcje internetowe)) i na zakadce Connections (Poczenia) wybierz
opcj Never dial a connection (Nigdy nie wybieraj poczenia). Gdy sprawdzisz,
e strona testowa si pojawia, moesz przywrci poprzednie ustawienia DUN.
3. Zainstaluj oprogramowanie PHP w katalogu c:\php. Jeli znasz jzyk angielski,
moesz przeczyta plik install.txt zawarty wewntrz tego katalogu. Zawiera on
informacje na temat instalacji tego oprogramowania.
Po zainstalowaniu wszystkich plikw w katalogu c:\php (w naszym przypadku
ekran konfiguracji poczty e-mail nie jest istotny) pozostan do wykonania jeszcze
dwie operacje.
Otwrz plik konfiguracyjny Apache httpd.conf (mieci si on w katalogu
C:\Program Files\Apache Group\Apache\conf\) i odszukaj sowo "

#.
Wstaw ponisze wiersze pomidzy inne wiersze "

#.
5)
"%
 N""N KN""NK
"& ""
%
$ N,%%""" 3""
%
$ ""
%
$ N,%%""" KN""N""3&,&K

Bardzo wane uruchom ponownie serwer Apache. Jeli pracujesz w systemie


Windows NT, uruchom ponownie serwis; w przeciwnym razie przejd w wierszu
polece do katalogu Apache i wpisz polecenie:
"& (+ )&%)%

4. Utwrz plik o nazwie php.php i nastpujcej treci:


O
""
-$.0'
O

Zapisz go w gwnym katalogu sieciowym serwera Apache (zwykle jest to katalog


C:\Program Files\Apache Group\Apache\htdocs, chyba e zmienie ciek dostpu
podczas instalacji lub te zmodyfikowae nazw katalogu w pliku httpd.conf).
Otwrz przegldark internetow i wpisz adres http://localhost/php.php. Powinna
si pojawi strona pokazana na rysunku 12.11.
Strona ta wywietla wszystkie parametry konfiguracyjne. Jeli si nie pojawi,
wykonaj ponownie operacje zwizane z instalacj. Jeli nie zainstalowae aplikacji
w domylnych katalogach, sprbuj je przeinstalowa uatwisz sobie ycie.
Po zainstalowaniu tych komponentw masz do dyspozycji metody tworzenia
dynamicznych materiaw XML w przegldarkach i co bardziej ekscytujce
we Flashu. Moesz uruchamia skrypty PHP z dowolnego miejsca w gb gwnego
katalogu sieciowego (jeli chcesz, moesz zmieni jego pooenie, modyfikujc
skrypty konfiguracyjne Apache i PHP).

Rozdzia 12. K Flash, XML i bazy danych

359

Rysunek 12.11.

Flash
Diagram na rysunku 12.12 ilustruje oglne zalenoci pomidzy poszczeglnymi komponentami. Film Flasha odwouje si do skryptu PHP, ktry wysya zapytanie do bazy danych
i otrzymuje odpowied. Nastpnie formatuje t odpowied do postaci obiektu XML
i przesya z powrotem do filmu Flasha, ktry moe nimi manipulowa lub po prostu je
wywietli.
Rysunek 12.12.

Czsto uruchamiam zewntrzne skrypty, ktre cyklicznie sprawdzaj baz danych i uruchamiaj okrelone procesy w razie spenienia okrelonych warunkw przez baz danych. Na powyszym diagramie s one reprezentowane przez blok Skrypty Perla.
Na przykad utworzyem skrypt, ktry przenosi wiadomoci e-mail z witryny do bazy
danych, co pozwala mi nastpnie w wygodny sposb wysa potwierdzenia ich otrzymania. Realizuj to za pomoc skryptu Perla, ktry co jaki czas sprawdza baz danych
i jeli znajduje nowe rekordy, automatycznie tworzy wiadomo e-mail i wysya j na
adres zwrotny. (Jeli sta ci na licencj, oprogramowanie Microsoft SQL Server
umoliwia uruchamianie funkcji VBScript za pomoc detektorw zdarze; umoliwiaj
one wysanie tych wiadomoci e-mail w czasie rzeczywistym).
Dosy czsto bdziesz tworzy takie acuchy procesw i wierz mi, nie zawsze bd one
chciay zadziaa od razu. Warto jednak nabra praktyki, by wiedzie, co si dzieje na kadym etapie, i co waniejsze, by potrafi sprawdzi wyniki kadego etapu.
Rozpocznijmy od spojrzenia na etapy dziaania prostego skryptu PHP. Jeli wczeniej
nie miae kontaktu z tym jzykiem, jednoczenie bdzie to dla ciebie pewnego rodzaju

360

Flash i XML. Techniki zaawansowane


wprowadzenie. Plik ten powinien funkcjonowa w gwnym katalogu sieciowym. Nie
mona po prostu przecign pliku PHP do przegldarki trzeba odnie si do niego
za porednictwem serwera. Na przykad, jeli plikowi nadasz nazw first.php, odniesiesz
si do niego za pomoc adresu http://localhost.php (lub na przykad http://localhost/
sites/flash-xml/first.php, jeli wczeniej przygotowae odpowiednie podkatalogi wewntrz katalogu sieciowego).

Nasz pierwszy plik PHP


Jeli pobrae i zdekompresowae archiwum z przykadami do tej ksiki, przejd do
katalogu Rozdzial_12 i odszukaj plik first.php. Skopiuj go do gwnego katalogu sieciowego (najprawdopodobniej jest to katalog C:\Program Files\Apache Group\Apache\
htdocs), a nastpnie otwrz przegldark i odnie si do tego pliku za pomoc adresu
http://localhost/first.php (rysunek 12.13).
Rysunek 12.13.

Strona wydaje si banalnie prosta. Spjrz jednak na kod, kryjcy si w pliku first.php.
O""
NN"$P%&+ &+*
DQD .%$ *&% +$& %) DQD0
NI%$
*&%

&$
&)$
+$& %)
""
IN
NN *+ 
:  % +)"
&< +$ DQD
QC7 $9P : $$
& ")&
& &
NN 9 "2R
&* ;
& )
: +)"% DQD  S< 
+

& ;P  $92&
T
&% &  ")&9P)&<
NN %$
% +$)%  - +*
")*P "$") $T:  

#*P *&  "$)$%& $ S3
NN  +$  "$%)& & $ 
&

T&  & $   
. "$
&)& *& 
&*03
NN 5+)"% &)&) $8& 8:  #P
+ "$
; +$"$ & %
"
+*
3
NN +$
& +$ DQD3 &) 
&T
 +$ QC73 $ DQD  
&
&9$ %
&

&
3 5&)&) ")*& %; &+*;

Rozdzia 12. K Flash, XML i bazy danych

361

NN
%
&)
< 8& 
&) $  *&
& +$& %)&
O
%
 $
D F & 
&) *&% +# +$& QC7< & *&T
$%$) "
+ R)2#$<
 *
& 
 )2
&8 +$ DQD3NF ND
N $
N%

Ten przykadowy plik zawiera dwie sekcje. Pierwsza mieci sam kod PHP, za druga
zwyky kod HTML. Sekcje te w powyszym przykadzie s rozdzielone, lecz kody PHP
i HTML mog by dowolnie przemieszane, pod warunkiem e fragmenty PHP oznaczysz
znacznikami $% oraz %& (lub po prostu $% oraz %&).
O""
U$ KQ&*< % *&% +$ DQDK'
""O

Sekcje PHP s parsowane na serwerze i nie s przesyane ani wywietlane na stronie.


Moesz zatem uywa kodu PHP do generowania dynamicznych elementw, na przykad na dynamicznej stronie HTML. Spjrz na poniszy przykad (znajdziesz go w pliku
dynamicdate.php pamitaj, by skopiowa go do gwnego katalogu sieciowego).
O""
NN % ")+#
& ")&
& +$ DQD
QC7<  9& &)$: +% P %;
& P%) $+& %
O
%
 $
D F 
%*  &* )9
&* %)$
& DQD3 G

&* %
O
V%$ J 9&%%&.0'
V$ % J V%$WB$ BX'
V J V%$WBBX'
V&) J V%$WB&)BX'
&$ KV 3 V$ % 3 V&)K'
O
NF ND
N $
N%
Y- +* 9&%%& ) % 
; 
&)*PP %;"*P& &&& %
K&$ K  &+ 
K
%&K  
%
K$)K  9$

KK  
&= 
&
P

362

Flash i XML. Techniki zaawansowane


KK  
&= %9$
< &)
& $ A .
&
&0 $ Z .$ $%0
K$ K  
&
P< &)
&
K&)K  )$+< &)
&
KK  
&= )$+< &)
&'  ")+# KL[[K
K&&+K  
&= %9$
< %&+%$$ ."&# &<  9
&+
&  
0 '  ")+#
KS)
K
K$ %K  
&
P< %&+%$$ ."&# &<  9
&+
&  
&
;0'  ")+# KE )K
Y

Rysunek 12.14 przedstawia stron wygenerowan przez powyszy skrypt.


Rysunek 12.14.

Jeli w przegldarce wybierzesz polecenie View/Source (Widok/rdo), nie zobaczysz


adnego kodu PHP. Jest to jzyk parsowany przez serwer, dziaa na serwerze i jedynie
rezultaty jego dziaania s widoczne w przegldarce. Jedynym sposobem, by pozna, e
jest to dynamiczna strona, a nie statyczny tekst, jest rzut oka na rozszerzenie pliku (.php).
Wrd przykadowych plikw dla rozdziau 12. znajdziesz rwnie plik variety.php.
Zawiera on przykady rnych uytecznych rozwiza wraz z komentarzami. Korzystajc
z nich oraz dysponujc wiedz na temat jzyka ActionScript, z atwoci zrozumiesz ich
dziaanie, cho mog si pojawi pewne nowoci w skadni.
Tego pliku nie bd tu analizowa. Jego zrozumienie nie powinno ci sprawi adnych
trudnoci przy okazji przekonasz si, e PHP jest naprawd atwym jzykiem. Uruchom
skrypt w przegldarce i otwrz go w edytorze tekstu. Porwnaj rezultat z kodem rdowym, by sprawdzi, jak dziaaj poszczeglne polecenia.
Korzystajc z poznanych tu technik, moesz zrealizowa wikszo zada programistycznych. Pamitaj, e masz do dyspozycji bogat dokumentacj PHP (w jzyku angielskim) oraz moesz skorzysta ze wsparcia spoecznoci programistw PHP.

Rozdzia 12. K Flash, XML i bazy danych

363

Wicej informacji na temat jzyka PHP znajdziesz w ksice Foundation PHP for Flash,
ktrego autorem jest Steve Webster2.

czenie skryptu z baz danych


Aby uywa skryptu w poczeniu z baz danych, musisz wykona trzy operacje:
Poczy si z baz danych i wybra tabel, na ktrej chcesz operowa
Sformuowa zapytania SQL
Przyj rezultaty
Gdy rezultaty zapyta zostan umieszczone w strukturze danych, moesz nimi manipulowa i formatowa je w dowolny sposb.
Jzyk PHP posiada rne funkcje suce do czenia si i formuowania zapyta do rnych typw baz danych, lecz kod SQL jest zawsze ten sam (przynajmniej w wikszoci
przypadkw).
Oto funkcje MySQL, ktrych bdziemy uywa:
' 

Otwiera poczenie z serwerem MySQL

''


Wybiera baz danych MySQL

'

Wysya zapytanie MySQL

' 

Zwraca warto numeryczn, stanowic kod bdu poprzednio


wykonywanych operacji MySQL

W dokumentacji znajdziesz wiele innych specjalizowanych funkcji, lecz te cztery zwykle s wystarczajce do wykonywania prostych operacji.
Wikszo problemw ze skryptami serwerowymi i bazami danych dotyczy uprawnie
(przywilejw). Wczeniej pokazalimy, jak uytkownikowi o nazwie ( przyzna
pozwolenie na czytanie danych z bazy  za pomoc dowolnego komputera.
9) % &&%<
&)%< "%& $ *+& $,3-
& %$ & &)MB1B
& %
-
& 
B& "$)B'
9) % &&%<
&)%< "%& $ *+& $,3-
& %$ & &)MB$$%B
& %
-
& 
B& "$)B'

Upewnij si, e twj skrypt posiada uprawnienia dostpu do bazy danych. Pamitaj, e moesz przyznawa przywileje z poziomu klienta MySQL; powiniene rwnie sprawdzi,
czy uytkownik, ktremu przyznae przywileje, moe si poczy za pomoc klienta
MySQL powinien to by pierwszy krok w przypadku wystpienia problemw z dziaaniem skryptu PHP.

Wydawnictwo Helion wydaje polskie tumaczenie tej ksiki pod tytuem Flash PHP. Podstawy
przyp. tum.

364

Flash i XML. Techniki zaawansowane


Poniej przedstawiamy przykad prostego skryptu, ktry wysya zapytanie do utworzonej wczeniej bazy danych  i pozyskuje rezultaty. Znajdziesz go w pliku jukebox_
db.php.
O""
NI
"$#P 
;  &)&)& <
+#
 V J/$ &%.K)& &)&)K<K  8%+$
+K< K#$K0
IN
V J /$ &%.K\L>3A3A3\K< K)$$%K<KK0'
NN
&) ;    T
&%
-$)*; $
&"$$&

/&&%/ .K*+& $,K<V 0$) 
& .K]&))$)J")$ &   $)& K0'
NNT
* "%
& 567 $    *+& $,
V)&% J /&).K5U7U I -)$ -
&K<V 0'
NN

*
* 

+
V  &)/$-/%)+JA'
NN"$
&) )&%% "%

+$ &)%* 9$  8%& P % 
;

& .V%
)&$)J/-&%/)).V)&%00
^
NI $%$ )&+$) &-

$  &"$T)&
$ .
&   % 
0
V%)%)&/))WAXWB
BX $ \
V%)%)&/))WAXWB &BX $ K)%%K
V%)%)&/))WAXWB%)+BX $ K%2)K
9 T $### "%
& &&% I -)$ *+& $,
 $+
& +
& % < )&+$) 9P#  %+

_
 _ & _ %)+ _

_ \ _ )%% _ %2) _
$* "$&92 & )&+$) $ "2 &* % 

IN
V%)%)&/))WXJ )) .
K
K J V%
)&$)WB
BX<
K &K J V%
)&$)WB &BX<
K%)+K J V%
)&$)WB%)+BX
0'
NN
;+ )%$T: 

+< 

 ; %$)2
V  &)/$-/%)+``'
a
NN")&*R #P % 
;
T
&% "$&92 & )&+$)
O
%
 $
O
&$ KFH F -$ %JK)
K 
&JKbK !!  F!U GQ
V  &)/$-/%)+N-$ % K'
&$ KN % & 
%JKbA1K $)&)JK\K &"
9JKAK &"
9JKAK K'
-$) .V
%&)%
$ JA'V
%&)%
$ V  &)/$-/%)+'V
%&)%
$ ``0
^

Rozdzia 12. K Flash, XML i bazy danych

365

&$ KH G K3V%)%)&/))WV


%&)%
$ XWB
BX3KNG G K
3V%)%)&/))WV
%&)%
$ XWB &BX3KNG G K3V%)%)&/))WV
%&)%
$ X
WB%)+BX3KNG NH K'
a
&$ KN% & K'
O

Rysunek 12.15 przedstawia rezultat skryptu. Za pomoc kodu PHP utworzylimy tabel
HTML, by wywietli zawarto bazy w uporzdkowany sposb.
Rysunek 12.15.

Cho skrypt zawiera dosy duo kodu, jego dziaanie moemy streci w prosty sposb.
Pierwsza cz skryptu czy si z baz danych za pomoc polecenia:
V J /$ &%.K\L>3A3A3\K< K)$$%K<KK0'

Nastpnie wybieramy baz danych, uywajc polecenia:


/&&%/ .K*+& $,K<V 0$) 
& .K]&))$)J")$ &   $)& K0'

Wysyamy zapytanie, ktrego rezultat umieszczamy w strukturze tablicowej ):


V)&% J /&).K5U7U I -)$ -
&K<V 0'

Jeli chciaby zobaczy raport bdu w przypadku problemw z wykonaniem funkcji


MySQL, moesz umieci w skrypcie dodatkowy, poniszy wiersz. Jest on przydatny
podczas tworzenia skryptu i pozwala wychwyci przypadkowe bdy, takie jak uycie
bdnej nazwy tablicy.
&$ /&)) $.03K K3/&))$).03KFH K'

Ponadto zwr uwag, e przy wysyaniu zapytania SQL za pomoc kodu PHP nie musisz
zakacza zapytania rednikiem, tak jak w przypadku wpisywania polece bezporednio
w oknie klienta MySQL.
Zadanie, ktre wydawao si naprawd skomplikowane, wypenilimy w trzech wierszach
kodu!

366

Flash i XML. Techniki zaawansowane


Teraz musimy jeszcze dotrze do wynikw zapytania.
Funkcja PHP o nazwie '*+ zwraca zawarto pojedynczej komrki, wchodzcej w skad wyniku zapytania MySQL. Jest ona przydatna na przykad wtedy, gdy
wiesz, e rezultat powinien by pojedynczy.
Jednak w wikszoci zastosowa baza danych zwraca wicej komrek wynikowych,
udostpnianych przez bardziej przydatn funkcj:
''  *)+ domylnie funkcja ta udostpnia rezultat w postaci

wsplnej tablicy, lecz mona te skorzysta z jej uytecznych opcji.


Wsplna tablica umoliwia wygodny dostp do poszczeglnych pl w poszczeglnych
rekordach.
Nasz przykadowy rezultat zapytania wyglda nastpujco:
,-

"

.(/

0-

  

 (/

1-

  

 (/

Powysze dane mona przedstawi jako dwuwymiarow struktur. Moesz odnie si


do konkretnego elementu w tablicy za pomoc indeksu, pamitajc, e tablice s indeksowane od zera, czyli tak:
234234

2342,4

234204

2,4234

2,42,4

2,4204

204234

2042,4

204204

W powyszym przykadzie komrka 234234 zawiera warto ,, komrka 234204 tekst


.(/, natomiast komrka 204204 tekst  (/.
Wsplna tablica kojarzy wartoci indeksw z rzeczywistymi nazwami, jakie moesz
przypisa komrkom. W powyszym przykadzie uylimy kombinacji obu rozwiza.
Wspln tablic wynikw tworzymy w taki sposb:
V%)%)&/))WXJ )) .
K
K J V%
)&$)WB
BX<
K K J V%
)&$)WB &BX<
K%2)K J V%
)&$)WB%)+BX
0'

Do poszczeglnych komrek odnosimy si wwczas nastpujco:


V%)%)&/))WAXWB
BX
V%)%)&/))WAXWB BX
V%)%)&/))WAXWB%2)BX

Pierwszy indeks suy nam do okrelania, o ktry rekord nam chodzi, za drugi pozwala
odnie si do konkretnego pola. Jak widzisz, nazwy indeksw nie musz si pokrywa

Rozdzia 12. K Flash, XML i bazy danych

367

z nazwami pl w bazie danych. Oczywicie mogyby by rwnie takie same, jak w poniszym przykadzie:
V%)%)&/))WXJ )) .
K
K J V%
)&$)WB
BX<
K &K J V%
)&$)WB &BX<
K%)+K J V%
)&$)WB%)+BX
0'

Wwczas nazw drugiego artysty z bazy danych odczytabym w taki sposb:


V%)%)&/))W\XWB &BX

Oczywicie dla polskiego czytelnika atwiejsze bdzie posugiwanie si polskimi nazwami pl.
Podsumujmy. Mamy tablic rekordw, wiemy, ile rezultatw zwraca zapytanie, i znamy
sowa kluczowe, za pomoc ktrych moemy odnosi si do poszczeglnych pl w rekordach.

Generowanie kodu XML


Rozpocznijmy przykad od prostego dokumentu XML. Znajdziesz go w pliku jukebox.xml.
O, ?&)
$ JB\3AB & $
9JB
$\LcAB O
*+& $,
)%T
JKcK
)%%
   & ) %N 
%2) & &  $- & &N%2)
N)%%
N)%T

N*+& $,

Generowanie kodu XML za pomoc skryptu PHP jest dziecinnie proste. Prawd mwic,
zwyke dodanie znacznikw $%%& na grze powyszego pliku i nadanie mu nazwy
jukebox.php z technicznego punktu widzenia zmienioby go w plik PHP. Jednak bardziej
uytecznym rozwizaniem bdzie wygenerowanie kadego wiersza lub fragmentu kodu
XML za pomoc polecenia PHP. Tym sposobem moesz decydowa o zawartoci generowanego kodu XML, umieszcza w skrypcie PHP struktury decyzyjne i inne rozwizania okrelajce jego posta.
Dlatego nasz plik jukebox.php wyglda nastpujco.
O""
&$ KO, ?&)
$ JK\3AK & $
9JK
$\LcAKO K'
&$ K  K'
&$ K*+& $, K'
&$K)%T
K'
&$K )%% K'

368

Flash i XML. Techniki zaawansowane


&$K    & ) %N  K'
&$K %2) & &  $- & &N%2) K'
&$K N)%% K'
&$KN)%T
K'
&$KN*+& $, K'
""O

Rysunek 12.16 przedstawia okno przegldarki po uruchomieniu skryptu jukebox.php.


Rysunek 12.16.

Generowanie kodu XML na podstawie bazy danych


Jeli te same dane byyby zawarte w bazie danych, moglibymy je przeksztaci do formatu
XML, by nastpnie wysa je w tej postaci do klienta, ktry jest przygotowany do operowania danymi w formacie XML. W tym celu musielibymy:
Sformuowa odpowiednie zapytanie SQL
Wywoa to zapytanie w skrypcie PHP
Sformatowa rezultaty
Zwrci (lub przesa) rezultaty
Przykad skryptu PHP wykonujcego powysze zadania znajdziesz w pliku jukebox_
db_xml.php. Dziaa on bardzo podobnie do skryptu jukebox_db.php, lecz zamiast tabeli
HTML generuje drzewo XML. W obu skryptach korzystamy z utworzonej wczeniej
bazy danych . Wiemy, e zawiera ona tabel  , zawierajc rekordy skadajce si z trzech pl:

Automatycznie zwikszana liczba cakowita, stanowica identyfikator rekordu



Warto typu 5  , skadajca si maksymalnie z 40 znakw, ktra nie moe by


pusta. Zawiera nazw artysty (zwykle imi i nazwisko)

 

Warto typu 5  , skadajca si maksymalnie z 40 znakw, ktra nie moe by


pusta. Zawiera tytu utworu

Rozdzia 12. K Flash, XML i bazy danych

369

Jak dotrze do informacji?


Zobaczmy, jak po stronie klienta odczytamy wygenerowany kod XML. Aby odczyta
okrelony element, konieczne jest przejcie od gwnego elementu drzewa XML do poziomu, na ktrym znajduje si ten element. Element gwny jest dostpny bezporednio
i musi on wystpowa w kadym dokumencie XML. Mieci on wszystkie elementy i stanowi punkt odniesienia dla wszelkich wdrwek po drzewie.
Zobaczmy drzewo XML, wygenerowane przez skrypt jukebox_db_xml.php (rysunek 12.17).
Rysunek 12.17.

(Zwr uwag, e ukradkiem dodaem do bazy znakomitego basist, Jaco Pastoriusa).


W naszym poprzednim przykadzie wze  mia tak posta:
*+& $,
d%+
&
& ;#
N*+& $,

Od tego wza wyjdziemy w naszym przykadzie. Rysunek 12.18 przedstawia skrypt


zawarty w filmie xmlLoader.fla.
W filmie Flasha przypisujemy element $ & zmiennej 6 , korzystajc
z polecenia:
)$$%U&& % J %
3-
)%
3 &,%5

9'

Element $ & jest dzieckiem obiektu XML.

370

Flash i XML. Techniki zaawansowane

Rysunek 12.18.

Jeli elementem gwnym pliku XML nie byby element $ &, dalsze przetwarzanie
pliku nie miaoby sensu, zatem przed przystpieniem do przetwarzania wykonujemy test
poprawnoci.
Element $ & zawiera dzieci (a raczej jedno dziecko) $ 7 &.
Element $ 7 & zawiera dzieci $  &.
Elementy $  & zawieraj dzieci $ !( & oraz $(/&.
Gdy przeledzisz ptl, ktra wyszukuje dzieci elementw, stwierdzisz, e wzw jest
wicej, ni wydaje si by w pliku rdowym. Wynika to z faktu (ktry poznalimy ju
wczeniej), e parser XML Flasha interpretuje biae znaki jako wzy. Nowsze wersje
odtwarzacza Flash 5 Player obsuguj waciwo 8   , ktra pozwala
obej ten problem i zwikszy wydajno aplikacji (mniej wzw = mniejsze obcienie
procesora).

&+%3
9 $)&
%&"&J%)&'

Rozdzia 12. K Flash, XML i bazy danych

371

Czytanie drzewa XML


W tym miejscu bardzo pomocne okazuj si waciwoci obiektu XML, dostpne w jzyku
ActionScript. Poniewa kady wze w dokumencie XML posiada rodzica i moe te
posiada jedno lub wicej dzieci, moesz przej przez cae drzewo dokumentu, schodzc
na kolejne poziomy i odczytujc dane w poszczeglnych gaziach.
Tak naprawd nie wiemy, ile gazi, podgazi, podpodgazi (i tak dalej) moe zawiera
otrzymany dokument. Dlatego w procesie czytania drzewa posugujemy si zagniedonymi ptlami, w ktrych badamy poszczeglne elementy i ich dzieci, ostatecznie docierajc
do interesujcej nas informacji.
W naszym przykadzie na pocztku tworzymy tablic  
9
 zawierajc dzieci elementu $ &:
) & J )$$%U&& %3
$&'

Sprawdzamy dugo (liczb komrek) tej tablicy:


 &)/$-/ ) & J ) &3& 9%'

Nastpnie w ptli przegldamy wszystkie elementy tej tablicy, wyszukujc interesujce


nas dzieci i rekursywnie schodzc w gb drzewa.
Na poziomie elementu $ & wyszukujemy elementy $ 7 &; na poziomie elementu
$ 7 & wyszukujemy elementy $  &; za na poziomie elementw $  &
poszukujemy elementw $ !( & i $7 : &.
W tym momencie osigamy pojedyncz ga i moemy odczyta warto jej wza,
posugujc si waciwoci 
 .
& J %
9$&3-
)%
3 $&e&'

Zawarto elementu $ !( &;(  !( $< !( & jest dostpna jako pierwsze dziecko
( = 
) elementu $ &.
W ten sposb koczymy wykonywanie wewntrznej ptli. Wracamy do nastpnych iteracji
zewntrznych ptli, badajcych dalsze potomstwo elementu $ &.
To prowadzi nas do drugiego i nastpnych elementw $  & oraz ich dzieci.
Podobne przykady analizowania dokumentw XML zamiecilimy we wczeniejszej czci
ksiki, zatem zrozumienie tego przykadu nie powinno ci sprawia adnych kopotw.
W ten sposb analizujemy konkretn struktur dokumentu XML; cho jego zawarto
powstaa w sposb dynamiczny, sam format pozostaje niezmienny. Jednak jzyk XML
jest rozszerzalny (ang. Extensible), zatem umoliwia tworzenie dowolnych struktur. Ju
niedugo bdziesz tworzy wasne struktury i wwczas po stronie klienta bdziesz musia
zaadaptowa pokazane funkcje tak, aby byy w stanie analizowa te nowe struktury.

372

Flash i XML. Techniki zaawansowane


W Internecie moesz znale wiele witryn, ktre udostpniaj rdowe pliki XML.
Warto pobra sobie jak najwicej takich plikw i sprbowa je przeanalizowa, by opanowa moliwoci obsugi dokumentw XML we Flashu i oswoi si z metodami i waciwociami obiektu XML. By moe w trakcie takich potyczek przyjdzie ci do gowy nietypowy
pomys na przedstawienie wasnych danych i ich obsug we Flashu. Rysunek 12.19
przedstawia klienta XML, ktrego utworzylimy w tym przykadzie.

Rysunek 12.19.

Rozwizywanie problemw
Jak wspomnielimy wczeniej, wsppraca komponentw Flasha, XML, PHP i MySQL
wymaga utworzenia acucha procesw. Wane jest, by w przypadku problemw by
w stanie okreli, ktry z komponentw moe by ich rdem. Jeli aplikacja Flasha nie
wywietla oczekiwanych danych XML, powiniene po kolei sprawdzi kade ogniwo
acucha, sprawdzajc porednie wyniki kadego etapu i starajc si wyizolowa miejsce,
ktre jest przyczyn problemw.
Istnieje kilka elementw, ktre powiniene sprawdzi.
Gdy korzystasz z bazy danych, sprawd, czy jeste w stanie poczy si z ni z klienta
MySQL, uywajc tej samej nazwy uytkownika i hasa, z jakiej korzysta skrypt sieciowy.
Pamitaj, by rzeczywicie poczy si z baz danych, uywajc polecenia $ ! '

&, poniewa rne bazy danych mog oferowa rne przywileje.


Jeli to dziaa, oznacza to, e macierzysty serwer bazy danych dziaa poprawnie. W idealnym przypadku moesz mie do dyspozycji inny komputer, poczony z serwerem, na
ktrym wykonasz wszystkie te testy. Jeli nie jeste w stanie poczy si z innego komputera za pomoc danej nazwy uytkownika i hasa, twj skrypt rwnie nie bdzie w stanie
tego zrobi.

Rozdzia 12. K Flash, XML i bazy danych

373

Wskazwka: Sprawd bdy wywietlane przez skrypt PHP i umie w skrypcie jukebox_db_xml.php polecenie, ktre zapamituje informacje o bdach, otrzymane z serwera
MySQL.
Jeli skrypt dziaa poprawnie i otrzymuje informacje z bazy danych, sprawd, czy formatowanie danych jest poprawne. Sprbuj wczyta stron w przegldarce. Czy Internet
Explorer wywietla poprawnie dokument XML, czy te pojawiaj si bdy?
Wskazwka: Parser XML wbudowany w przegldark Internet Explorer podwietla
wszelkie bdy skadniowe. Ponadto za pomoc polecenia View/Source (Widok/rdo)
moesz zobaczy w przegldrce kod generowany przez skrypt PHP. Sprawd znaczniki
domykajce i znaki, ktre powinny wchodzi w skad kodu XML (typowym bdem jest
tekst >?@ >; zamiast tego powiniene uy >? @ >).
Jeli wszystko do tej pory funkcjonuje prawidowo, lecz twoja aplikacja nadal nie dziaa,
umie akcje   w skrypcie Flasha i przeanalizuj jego dziaanie.
Jeli aplikacja nadal nie chce dziaa, zrb sobie przerw. By moe zbyt dugo wpatrujesz
si w to samo i mylisz w ten sam sposb; szedziesite sidme sprawdzenie tego samego elementu raczej mu ju nie pomoe. By moe gdy wrcisz do sprawy wypoczty,
od razu zorientujesz si, co jest nie tak.

Co jeszcze mona zrobi z nasz aplikacj


Umie kilka plikw MP3 na lokalnym komputerze i umie cieki dostpu do nich
w poszczeglnych rekordach bazy danych. Wczytaj te rekordy do klienta Flasha za pomoc
skryptu PHP, ktry sformatowa dane do odpowiedniej postaci kodu XML. Za pomoc
akcji 8.AB*+ wczytaj poszczeglne pliki MP3 i odtwrz je w aplikacji Flasha.

Vous aimerez peut-être aussi