Professional Documents
Culture Documents
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
Dreamweaver UltraDev 4.
Vademecum profesjonalisty
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
!
"#
Interfejs programu UltraDev..................................................................................................23
Struktura menu.......................................................................................................................24
Okno dokumentu....................................................................................................................26
Edycja obiektw ..............................................................................................................27
Rozmiar strony ................................................................................................................27
Wielko strony a czas pobierania...................................................................................28
Konfigurowanie okna dokumentu ...................................................................................28
Palety narzdziowe ................................................................................................................30
Obiekty HTML ................................................................................................................30
Paleta Properties (Properties Palette) ..............................................................................40
Pozostae okna i palety ....................................................................................................41
Bezporedni dostp do kodu HTML......................................................................................44
Zaznaczanie elementw w rnych widokach ................................................................45
Opcje wywietlania kodu.................................................................................................45
Sprawdzanie informacji o znacznikach HTML...............................................................46
Przeszukiwanie dokumentw ..........................................................................................46
Uruchamianie zewntrznego edytora HTML ..................................................................49
Dostosowywanie ustawie programu UltraDev ....................................................................50
Podsumowanie .......................................................................................................................52
Pytania i odpowiedzi..............................................................................................................52
"
$
!
%
&
#
Tworzenie pierwszej witryny.................................................................................................53
Definiowanie witryny ......................................................................................................54
Uwagi o projektowaniu..........................................................................................................56
Do kogo kierujesz witryn?.............................................................................................56
Projektuj z myl o rnych platformach ........................................................................56
Nie rb baaganu! ............................................................................................................57
Podstawowe elementy strony.................................................................................................57
Tworzenie czy...............................................................................................................58
Elementy nagwka strony sekcja <HEAD>..............................................................59
Podstawowe atrybuty strony............................................................................................60
Podgld projektu strony...................................................................................................61
Sprawdzanie pisowni.......................................................................................................62
Tabele.....................................................................................................................................62
Wstawianie tabeli ............................................................................................................63
Ukad tekstw i grafiki ....................................................................................................66
Tryb Table Layout .......................................................................................................70
Paski i przyciski nawigacyjne................................................................................................71
Lista czy........................................................................................................................72
Aktywne obrazki i mapy aktywnych obszarw...............................................................72
Rollovery .........................................................................................................................74
Paski nawigacji ................................................................................................................76
Warstwy .................................................................................................................................78
Precyzyjne pozycjonowanie elementw z wykorzystaniem warstw ...............................78
Przeksztacanie warstw w tabel i odwrotnie ..................................................................81
Ramki.....................................................................................................................................82
Ukad ramek ....................................................................................................................83
Paleta Frames...................................................................................................................84
Znacznik <NOFRAMES> ...............................................................................................84
Skomplikowane ukady ramek ........................................................................................85
Ramki argumenty za i przeciw ...................................................................................85
Formularze .............................................................................................................................86
Testowanie kodu HTML........................................................................................................86
Raporty...................................................................................................................................87
Podsumowanie .......................................................................................................................88
Pytania i odpowiedzi..............................................................................................................88
#
$
'
%'
()
Planowanie witryny ...............................................................................................................89
Mapa witryny...................................................................................................................90
Konwencje nazewnicze ...................................................................................................91
Mapa witryny a UltraDev ......................................................................................................93
Zastosowanie mapy witryny w pracy nad istniejcymi witrynami WWW .....................93
Zastosowanie mapy witryny do tworzenia nowych stron WWW ...................................96
Wprowadzanie istniejcej witryny WWW do rodowiska UltraDev ....................................98
Sposoby uzyskiwania dostpu do danych .......................................................................98
Sposoby realizacji dostpu do maszyny zdalnej..............................................................99
Korzystanie z poczenia ...............................................................................................104
Zarzdzanie witryn.............................................................................................................106
Weryfikacja czy ..........................................................................................................106
Rozproszone rodowisko edycyjne......................................................................................108
Konfiguracja systemu Check In/Out .............................................................................108
Uytkowanie systemu Check In/Out .............................................................................109
Notatki projektu.............................................................................................................110
Podsumowanie .....................................................................................................................111
Pytania i odpowiedzi............................................................................................................112
*
%
%%
+
,-% #
Czym jest DHTML? ............................................................................................................113
Kaskadowe arkusze stylw............................................................................................114
JavaScript.......................................................................................................................114
Problemy zwizane z DHTML-em................................................................................114
DHTML stosowa czy nie? ......................................................................................115
Podstawowe wiadomoci o behawiorach.............................................................................116
Paleta Behaviors ............................................................................................................116
Tworzenie behawiorw .................................................................................................117
Wykorzystanie behawiorw do tworzenia podpowiedzi
wywietlanych na pasku statusu przegldarki............................................................121
.&/!
% 0
%
*
Wielokrotne wykorzystanie kodu ........................................................................................147
Formatowanie hurtowe, czyli kaskadowe arkusze stylw.............................................148
Wsplne elementy witryny............................................................................................150
Szablony ........................................................................................................................151
Style HTML .........................................................................................................................151
Kaskadowe arkusze stylw ..................................................................................................153
Praca z kaskadowymi arkuszami stylw .......................................................................154
Biblioteki .............................................................................................................................161
Tworzenie elementw biblioteki z wykorzystaniem istniejcego kodu HTML............162
Paleta Assets widok Library .....................................................................................162
Tworzenie elementw biblioteki od podstaw................................................................163
Szablony...............................................................................................................................164
Tworzenie szablonw z wykorzystaniem istniejcych stron HTML ............................165
Paleta Assets widok Templates ................................................................................166
Tworzenie szablonw od podstaw.................................................................................167
Korzystanie z szablonw ...............................................................................................167
Paleta Assets ........................................................................................................................168
Listy Site i Favorites......................................................................................................169
Rozszerzanie moliwoci rodowiska UltraDev..................................................................169
Rejestrowanie polece...................................................................................................169
Rejestrowanie polece do uytku tymczasowego .........................................................170
Pakiety rozszerze programu UltraDev.........................................................................171
Podsumowanie .....................................................................................................................172
Pytania i odpowiedzi............................................................................................................172
1
$!
%
%%-
/
/
,
%-
Dynamiczne witryny WWW................................................................................................175
CGI ................................................................................................................................176
Jzyki osadzane w HTML-u..........................................................................................177
Dziaanie dynamicznych witryn WWW ..............................................................................178
Przekazywanie zmiennych ............................................................................................178
Cookies ..........................................................................................................................181
Tworzenie dynamicznych witryn WWW ............................................................................183
Typowe rodzaje witryn WWW realizowanych jako witryny dynamiczne....................183
Projektowanie dynamicznych witryn WWW ................................................................184
$!
%
&%/2
!/%
%-
%/%!
%%-
"3
Platformy skryptowe obsugiwane przez UltraDev .............................................................201
Active Server Pages.......................................................................................................202
Java Server Pages ..........................................................................................................203
ColdFusion.....................................................................................................................205
Platforma systemowa dla serwera WWW ...........................................................................206
Technologia przyjazna dla uytkownika .......................................................................207
Liczba i rodzaj oferowanych usug................................................................................207
Stabilno.......................................................................................................................208
Wspczynnik wydajno koszt................................................................................208
Pomoc techniczna ..........................................................................................................209
Podejmujemy ostateczn decyzj... ...............................................................................209
Jzyki skryptowe obsugiwane przez UltraDev...................................................................210
Elementy podstawowe...................................................................................................210
Zmienne .........................................................................................................................211
Ptle i instrukcje warunkowe.........................................................................................214
Charakterystyczne elementy aplikacji WWW...............................................................216
Podsumowanie .....................................................................................................................218
Pytania i odpowiedzi............................................................................................................218
(
4
!%!
2
56
6
!
/
7
,
%- ""
Poczenia z bazami danych ................................................................................................221
Konfiguracja pocze z bazami danych .......................................................................222
ODBC w MacOS? Naturalnie poczenie JDBC-ODBC ...............................................231
Konfiguracja klienta RmiJdbc w systemie MacOS.......................................................232
Konfiguracja serwera RmiJdbc w systemie Windows NT............................................233
Instalacja i uruchamianie serwera MySQL..........................................................................236
Instalacja i uruchamianie serwera MySQL w systemach MS Windows.......................237
Instalacja i uruchamianie serwera MySQL w systemach z rodziny Unix .....................238
Testowanie funkcjonowania serwera MySQL ..............................................................239
Konfiguracja rde danych ODBC dla baz danych MySQL .......................................240
Konfiguracja rde danych ODBC dla baz danych Microsoft Access...............................242
Podsumowanie .....................................................................................................................243
Pytania i odpowiedzi............................................................................................................244
)
$!
&
! 8'
%%-
%
"*
Bazy danych w sieci WWW ................................................................................................245
Poczenia......................................................................................................................246
Behawiory wykonywane po stronie serwera .................................................................247
Podstawowe behawiory po stronie serwera...................................................................249
Rnice w funkcjonowaniu tradycyjnych baz danych i baz pracujcych w sieci .........255
Dodatkowe behawiory wykonywane po stronie serwera ..............................................256
3
9
!
%-
!
,%
%- "
Strony generowane na podstawie bazy danych ...................................................................271
Prosta tabela .........................................................................................................................272
Tworzenie procesw drugoplanowych..........................................................................272
Tworzenie aplikacji UltraDev .......................................................................................273
Dodawanie grafiki do zestawu rekordw ............................................................................280
Procesy drugoplanowe bazy danych umoliwiajce wykorzystanie grafiki .................281
Dodawanie dynamicznego obrazka do projektu............................................................282
Upikszanie strony...............................................................................................................284
Dynamiczne atrybuty i zoone strony ................................................................................285
Rozbudowane procesy drugoplanowe bazy danych......................................................286
Dodatkowe funkcje stron dynamicznych.............................................................................290
Sortowanie .....................................................................................................................290
Podsumowanie .....................................................................................................................291
Pytania i odpowiedzi............................................................................................................292
.!%:
%
/
%
/
")#
Manipulacja danymi w sieci ................................................................................................293
Tworzenie formularzy..........................................................................................................294
Tworzenie prostego formularza w jzyku HTML .........................................................295
Pola tekstowe.................................................................................................................297
Przyciski Submit (Wylij) .............................................................................................300
Dodawanie akcji Insert ........................................................................................................305
Ekrany szczegowe i usuwanie rekordw ..........................................................................307
Ekrany szczegowe ......................................................................................................307
Usuwanie rekordw.......................................................................................................311
czenie z ekranem szczegowym ..............................................................................312
Ekrany aktualizacji...............................................................................................................314
Tworzenie formularzy dynamicznych ...........................................................................316
Tworzenie formularzy dynamicznych za pomoc behawiorw serwera.......................316
Tworzenie elementw dynamicznego formularza za pomoc palety Properties ..........317
Formularze i ekrany generowane automatycznie ................................................................319
Obiekt Master-Detail .....................................................................................................319
Obiekt Record Insert Form ............................................................................................321
Obiekt Record Update Form..........................................................................................322
Tworzenie ostatniego poczenia...................................................................................325
Podsumowanie .....................................................................................................................326
Pytania i odpowiedzi............................................................................................................326
"
$!
!%-
%
7
,%
%- #"
Po co nam SQL? ..................................................................................................................327
Obiekty baz danych..............................................................................................................328
Tworzenie baz danych i tabel ..............................................................................................329
Rodzaje danych..............................................................................................................331
Dodawanie i zmienianie danych ..........................................................................................332
Aktualizacja danych ......................................................................................................333
Usuwanie danych...........................................................................................................335
Zapytania tabel baz danych..................................................................................................336
Sortowanie informacji ...................................................................................................337
czenie tabel ................................................................................................................337
Narzdzia sumowania....................................................................................................340
Inne zaawansowane techniki................................................................................................342
Widoki ...........................................................................................................................342
Procedury skadowane...................................................................................................343
Zapytania w zapytaniu...................................................................................................343
Zaawansowane zapytania a UltraDev..................................................................................344
Podsumowanie .....................................................................................................................345
Pytania i odpowiedzi............................................................................................................346
#
6/ /
!
+
/
:
!%!
%
%!/ #*
Katalog produktw ..............................................................................................................347
Kategorie produktu ........................................................................................................349
Pozycje katalogu............................................................................................................349
Pozycje pokrewne..........................................................................................................350
Kod SQL........................................................................................................................351
Zapytania SQL...............................................................................................................352
Projektowanie katalogu........................................................................................................356
Formularz wyszukiwania...............................................................................................356
Wyniki wyszukiwania ...................................................................................................359
Automatyzacja paska nawigacyjnego ..................................................................................367
Status nawigacji.............................................................................................................368
Paski nawigacji ..............................................................................................................368
Podsumowanie .....................................................................................................................369
Pytania i odpowiedzi............................................................................................................369
*
6/ /
!
+
!&
8%
// #
Systemy logowania ..............................................................................................................371
Uwierzytelnianie HTTP.................................................................................................371
Rejestrowanie poprzez sie ...........................................................................................372
SQL ......................................................................................................................................373
Proste logowanie..................................................................................................................375
Przetwarzanie informacji logowania .............................................................................377
ledzenie przebiegu sesji .....................................................................................................380
Przekazywanie zmiennej ...............................................................................................382
Cig dalszy przekazywania zmiennej............................................................................385
Przechodzenie do strony pokrewnej ..............................................................................386
Czas na cookies....................................................................................................................387
Definiowanie zmiennej sesji..........................................................................................388
Uywanie zmiennych sesji ............................................................................................390
Zmienne sesji w zapytaniach.........................................................................................390
System uwierzytelniania oferowany przez program UltraDev............................................391
Prawdziwe bezpieczestwo witryn internetowych ..............................................................391
Podsumowanie .....................................................................................................................392
Pytania i odpowiedzi............................................................................................................392
1
.!
-/
+
,
%-
2 *)
Wejcie i wyjcie przegld systemu zarzdzania wiadomociami .................................419
Definiowanie mapy serwisu ..........................................................................................420
Tworzenie kodu SQL.....................................................................................................421
Budowanie gwnego widoku wiadomoci .........................................................................424
Tworzenie listy wiadomoci..........................................................................................425
Sortowanie listy wiadomoci.........................................................................................427
Dodanie parametru do behawiora serwera Go To Related Page ...................................429
Przeszukiwanie wiadomoci..........................................................................................430
Czytanie wiadomoci ...........................................................................................................431
Tworzenie zestaww rekordw .....................................................................................433
Tworzenie ukadu strony ...............................................................................................434
Usuwanie wiadomoci...................................................................................................435
Ulepszanie okna przegldania wiadomoci...................................................................436
Projektowanie strony sucej do pisania nowej wiadomoci .............................................438
Wstawianie ukrytych pl ...............................................................................................439
Zachowywanie wiadomoci ..........................................................................................440
Podsumowanie .....................................................................................................................441
Pytania i odpowiedzi............................................................................................................441
9-/
!
+
%!/
%/%!
%-
8%
// **#
Czy to wci ta sama witryna?.............................................................................................443
Struktura konfigurowalnej witryny WWW ...................................................................445
Definiowanie tabel bazy danych..........................................................................................446
Uytkownicy..................................................................................................................447
Preferencje .....................................................................................................................447
Waciwoci i opcje .......................................................................................................448
Poprawki w strukturze bazy danych..............................................................................449
Ju bardziej praktycznie... .............................................................................................450
Inicjalizacja waciwoci i dostpnych dla nich opcji ...................................................451
Domylne preferencje....................................................................................................454
"
(
. 8
!%!
%
%!/ *
Zoone metody wyszukiwania............................................................................................475
Ograniczanie rezultatw wyszukiwania ........................................................................480
Okrelanie wagi poszczeglnych waciwoci ..............................................................483
Autostopowicz .....................................................................................................................484
Definiowanie tabel bazy danych..........................................................................................484
Tabela tblUzytkownicy..................................................................................................485
Tabela tblOpcje..............................................................................................................486
Wprowadzanie do bazy danych przykadowych informacji..........................................487
System logowania i rejestracji .............................................................................................489
Rejestracja i ustalenie domylnego profilu....................................................................489
Logowanie ...........................................................................................................................492
Profil uytkownika...............................................................................................................493
Wyszukiwanie......................................................................................................................495
Ograniczenie dostpu do stron witryny ...............................................................................498
Podsumowanie .....................................................................................................................500
Pytania i odpowiedzi............................................................................................................500
)
9-/
!
+
!
%
/
3
System ankiet i testw .........................................................................................................501
Mapa witryny.................................................................................................................501
Tworzenie zapyta SQL ................................................................................................502
Tworzenie strony rejestracji.................................................................................................507
Tworzenie formularza quizu ................................................................................................510
Pomijanie pyta .............................................................................................................512
Dynamiczne odpowiedzi ...............................................................................................512
Zapisywanie odpowiedzi ...............................................................................................514
Zliczanie poprawnych odpowiedzi (opcjonalne)...........................................................517
Koczenie quizu ............................................................................................................520
Zabezpieczanie quizu ....................................................................................................523
Dostp administracyjny .......................................................................................................524
Tworzenie ekranu wynikw ..........................................................................................525
Posumowanie .......................................................................................................................527
Pytania i odpowiedzi............................................................................................................527
"3
9-/
!
+
'
; ")
Zawia prostota.....................................................................................................................529
Zakupy bazujce na ID sesji..........................................................................................530
Konta uytkownikw.....................................................................................................531
Nasze rozwizanie .........................................................................................................531
Mapa witryny e-commerce............................................................................................532
Definicje tabel......................................................................................................................532
Kategorie produktw .....................................................................................................533
Elementy katalogu .........................................................................................................533
Elementy pokrewne .......................................................................................................534
Informacja na temat uytkownika .................................................................................534
Informacje na temat koszyka.........................................................................................535
"
9!
8
/
%%- )
Problemy wystpujce podczas kodowania.........................................................................559
Bdy dotyczce kodu HTML..............................................................................................560
Formularze.....................................................................................................................560
Warstwy.........................................................................................................................565
Problemy zwizane z behawiorami serwera ........................................................................568
Pozostaoci ...................................................................................................................569
Zaawansowane zapytania ..............................................................................................569
Utrzymuj prostot kodu .................................................................................................572
Testowanie ...........................................................................................................................573
Sprawdzanie wartoci NULL ........................................................................................574
Zatwierdzanie wykorzystania powtarzajcych si danych ............................................575
Testowanie maksymalnych dugoci .............................................................................575
Dodatkowe zasoby informacji dotyczcych rozwizywania problemw............................576
Podsumowanie .....................................................................................................................577
Pytania i odpowiedzi............................................................................................................577
/
<
42
/
/
/ -
%6=> (
Najczciej wykorzystywane typy danych ..........................................................................587
Operacje arytmetyczne.........................................................................................................588
Operacje logiczne.................................................................................................................589
Porwnania liczbowe ...........................................................................................................589
Funkcje porwnywania acuchw......................................................................................589
Funkcje matematyczne.........................................................................................................590
Funkcje acuchowe.............................................................................................................591
Funkcje daty i czasu ......................................................................................................593
Funkcje sumowania uywane z warunkiem GROUP BY ...................................................594
/
?
4%
@2
/
/!'8/ )
Rozdzia 15 Ksiga goci (listagosci.asp).......................................................................595
Rozdzia 16 Lista wiadomoci (index.asp) .....................................................................598
Rozdzia 16 Czytanie wiadomoci (wiadomosc.asp)......................................................604
Rozdzia 17 Strona rejestrowania si (logowanie2.asp) .................................................608
Rozdzia 17 Strona zawartoci (zawartosc.asp)..............................................................610
Rozdzia 19 Strona pytania quizu (quiz.asp) ..................................................................615
Rozdzia 20 Dodaj do koszyka (szczegoly.asp)..............................................................626
Rozdzia 20 Usuwanie elementw z koszyka (sprawdzanie.asp)...................................635
Rozdzia 20 Kocowe sprawdzanie (sprawdzanie2.asp) ................................................639
6/
1*
Rozdzia 15.
najbardziej efektywny,
dodawanie losowo wybranego banera reklamowego do strony,
automatyczne wywietlanie obrazkw na stronie w zalenoci od pory roku czy dnia,
tworzenie personalizowanej ksiki goci.
Najtrudniejsz rzecz w programowaniu stron dynamicznych jest konieczno cakowitego zerwania z zasadami, ktre przyswoie sobie wczeniej. Zamiast uywa na
stronach statycznych cz lub obiektw, masz moliwo zmieniania wszystkich stron
w serwisie za kadym razem, gdy uytkownik je odwiedza.
K
Najbardziej zoone aplikacje internetowe, takie jak rozwizania e-commerce czy przeszukiwanie baz danych, s omwione w dalszej czci tego rozdziau. Przekonasz si
te, e wikszo spord najistotniejszych stron internetowych uywa bardzo prostych
narzdzi dynamicznych, co sprawia, e s one bardziej interesujce. Na przykad, ile razy odwiedzie witryny Dilberta? (Jeli odpowied brzmi: Ani razu!, zastanawiam si,
co masz wsplnego z komputerami.) Wielu ludzi odwiedza codziennie t stron. To samo
dotyczy witryny CNN lub stron powiconych informatyce. Przypuszczam, e odwiedzasz przynajmniej jedn tak stron dziennie. Pytam wic, co sprawia, e odwiedzasz
je tak czsto?
Zastanw si nad tym przez chwil. Odpowied brzmi: Poniewa ich zawarto czsto
si zmienia. Kadego dnia na stronie Dilberta pojawia si nowy odcinek komiksu, natomiast w witrynie CNN mona znale aktualne informacje. Zapewnienie aktualnej
zawartoci stron jest doskonaym sposobem przycigania uytkownikw.
Co zatem zrobi, jeli nie chcesz uaktualnia codziennie Twojej witryny? Zawsze moesz zapewni uytkownikom nowe informacje i elementy graficzne. Wiele stron przechowuje swoj zawarto w bazie danych, ktra jest udostpniana we waciwym czasie. Mimo e takie rozwizanie nie sprawdza si na stronach informacyjnych (chyba e
wierzysz w to, e media tworz zdarzenie, ktre nie miao jeszcze miejsca), dziaa jednak dobrze w przypadku zawartoci, ktra moe by generowana, zanim jest uyta (np.
obrazki, miesiczne biuletyny informacyjne).
Poznasz kilka niewielkich projektw, ktre moesz wykorzysta na swoich stronach
w celu zastpienia standardowych, statycznych elementw. S to oglne moduy stron
internetowych, ktre mog by uyte jako uzupenienie stron ju istniejcych. Krtki
przegld tych projektw przedstawiam niej.
Losowe banery reklamowe lub obrazki. Banery reklamowe s sposobem na
goci. Moesz atwo wczy j do swojej strony. Moesz rwnie doda filtr
grzecznociowy, polegajcy na eliminacji wulgarnych wiadomoci lub jzyka,
ktry uwaasz za nieodpowiedni.
Tworzc te mae projekty, bdziesz zmaga si z rnorodnymi problemami, dziki
czemu nabierzesz wprawy potrzebnej do zrozumienia duych projektw, ktrymi bdziemy zajmowa si w dalszej czci tej ksiki. By moe bdziesz rwnie chcia
przejrze swoje strony i sprawdzi, czy mona w nich zastosowa poznane funkcje.
K!
"
#
"
Przedstawiony plan dziaania stanowi kompletny obraz przebiegu prac nad projektem.
Lepiej zrozumiesz materia zawarty w tej ksice, jeli bdziesz czyta j rozdzia po
rozdziale, a nie skaczc pomidzy nimi. Czasem bdziemy wykonywa w UltraDev
rzeczy, ktre nie wchodz w skad kocowego projektu, jednak oka si one pomocne,
gdy przystpisz do tworzenia wasnych projektw.
Do dziea!
Wiem, wiem, s one denerwujce, lecz bardzo popularne. Paski reklamowe mog zosta
sprzedane za bardzo wysok cen, o ile Twoja strona jest czsto odwiedzana. Wiesz ju,
jak w sposb dynamiczny wywietli seri obrazkw, ale nie stworzye do tej pory
pojedynczego obrazka, ktry byby dynamiczny. Uycie tabeli zawierajcej zbir obrazkw jest ju poow sukcesu, ale fakt ten nie wpywa na moliwo zmieniania ich
przy kadorazowym adowaniu strony.
K
Kluczem do utworzenia zmieniajcych si obrazkw jest napisanie zapytania, ktre bdzie zwraca za kadym razem rne rekordy. Jest to atwiejsze, ni mylisz, lecz musisz najpierw stworzy baz danych, do ktrej zapytanie bdzie si odwoywa.
W kadym z projektw zaoyem, e nim rozpoczniesz wiczenie, bdziesz mia ustanowione poczenie z baz. Zrb to, jeli dotd tego nie uczynie. Czas zaj si jzykiem SQL.
Musisz mie zbir obrazkw, aby losowo wybra jeden z nich. T informacj bdziesz
przechowywa w tabeli w bazie. Wikszo paskw reklamowych to cza do innych
stron, wic musisz przyporzdkowa kademu obrazkowi waciwy adres internetowy.
Definicja tabeli musi zawiera tylko te dwa pola, a poniewa zakadamy, e kady z banerw wykorzystuje obrazki o innych nazwach, uyjemy nazwy pliku jako klucza gwnego:
Rozpoczn od umieszczenia trzech paskw reklamowych w moim systemie, ktre posu jako przykad s one przedstawione na rysunku 15.2.
Dla potrzeb
przykadowego
programu stworzyem
kilka paskw
reklamowych.
Mam nadziej,
$e Twoje bd% lepsze
K!
"
#
"
Oprcz tych trzech paskw potrzebujemy nazw pliku i folder, w ktrym s one przechowywane, oraz adres URL dostpny dla uytkownika, ktry kliknie wybrany baner:
banners/fade.gif http://fade.poisontooth.com/
banners/buddy.gif http://buddy.poisontooth.com/
banners/detailing.gif http://detailing.poisontooth.com/
Powysze adresy URL nie s prawdziwe, ale domena poisontooth istnieje i naley
do mnie. Zamiast zgadywa nazw nieistniejcej domeny, wol uy wasnej.
Nie chciabym, by prawdziwa firma Salon samochodowy Carla zasypaa mnie
stosem e-maili w zwizku z nieautoryzowanym uyciem ich nazwy.
!"
!"
! !"
!
Mimo e mamy ju dane w tabeli, wci nie zostao wyjanione, w jaki sposb bdziemy
losowo wybiera obrazek. Oczywicie, moemy wzi wszystkie dane, tworzc bardzo
proste zapytanie:
#$%&'&()*+,-.
/0000000000000000000000000/000000000000000000000000000000000000000/
1
11
/0000000000000000000000000/000000000000000000000000000000000000000/
1
!1"
1
1
! !1"
!
1
/0000000000000000000000000/000000000000000000000000000000000000000/
23
4
Niestety, za kadym razem, gdy wykonywane jest zapytanie, informacje zostaj zwrcone w tej samej kolejnoci. Idealnym rozwizaniem byaby zamiana kolejnoci zwracanych rekordw. Dodajc do przeszukiwania komend
poczon z funkcj
MySQL , otrzymamy rekordy w porzdku losowym.
#$%&'&()*+,-.
-,5&, 6,785
/0000000000000000000000000/000000000000000000000000000000000000000/
1
11
/0000000000000000000000000/000000000000000000000000000000000000000/
1
! !1"
!
1
1
!1"
1
1
!1"
1
/0000000000000000000000000/000000000000000000000000000000000000000/
Ten rezultat ju jest duo lepszy od poprzedniego. Pozostaje jednak jeszcze jeden problem, polegajcy na tym, e zwracane s wszystkie rekordy, a nie tylko jeden. Poniewa
jestemy zainteresowani wywietlaniem pojedynczego obrazka, reszta rekordw nas nie
interesuje. Najprostszym sposobem ograniczenia liczby zwracanych rekordw jest zastosowanie funkcji . Uycie
spowoduje wywietlenie pojedynczego rekordu:
&
K
#$%&'&()*+,-.
! !1"
!
1
/0000000000000000000000000/000000000000000000000000000000000000000/
:3
4
Jeli nie chcesz, nie musisz tego robi. W UltraDev Recordset dziaa w taki sposb, e
masz bezporedni dostp tylko do pierwszego zwracanego rekordu, chyba e zaznaczysz wczeniej w opcjach programu, by przeglda wszystkie rekordy w bazie na
czym nam teraz zaley.
Kod SQL mamy ju gotowy. Teraz powinnimy zaj si tworzeniem mapy serwisu,
jednak ten projekt rni si od innych tym, e zajmujemy si funkcjonowaniem obrazkw, ktre mona osadzi na dowolnej stronie. Z tego powodu pominiemy map, poniewa nie jest ona tutaj konieczna.
Aby zaimplementowa losowe wybieranie obrazkw, otwrz nowe okno projektu dokumentu w UltraDev. Moesz to uczyni, uywajc istniejcego pliku. Stworzenie dynamicznego paska reklamowego wymaga uycia na stronie trzech elementw UltraDev:
!
".
K!
"
#
"
'
Bdziemy rcznie
tworzy zapytanie
w trybie
zaawansowanym.
U$ycie funkcji
RAND jest
niedozwolone
w trybie prostym
konfiguracji
zapytania
Kliknij kilka razy przycisk Test, aby sprawdzi dziaanie zapytania. Nie powiniene zauway adnej prawidowoci w otrzymywaniu rekordw. Mimo e aden komputer tak
naprawd nie potrafi dziaa losowo, otrzymany rezultat powinien by wystarczajcy
w wikszoci wypadkw. Jeli nie uywasz MySQL, sprawd, jaki jest odpowiednik
funkcji
w Twojej bazie.
Wstawimy teraz obrazek do naszego dokumentu. Otwrz palet Object i kliknij ikon
Image lub wybierz Insert Image z menu Insert. Program zapyta o nazw pliku. Zamiast
wybiera jeden z plikw graficznych, ktre stworzye, kliknij Select File z przycisku
Datasource. Pojawi si wtedy okno, przedstawione na rysunku 15.4. W nim bdziesz
mg poczy pole z tabeli z atrybutem
# w znaczniku .
Kliknij znak + obok zestawu rekordw rsBanner, aby zostay wywietlone jego pola.
Wybierz pole obrazek i kliknij OK, aby zakoczy poczenie.
Poniewa UltraDev nie operuje w kodzie nazw obrazka, bdziesz widzia tylko ikon
przedstawiajc obrazek. Moesz oczywicie wczy opcj Live Data z menu View,
aby wybra baz danych i wywietli losowo wybrany obrazek. Kliknicie przycisku
Refresh, umieszczonego na grze okna, spowoduje wybranie nowego obrazka. Pamitaj, e wybr jest losowy i jeden obrazek moe si pojawi kilka razy pod rzd. Jeli
poprawnie stworzye zapytanie, powiniene zobaczy rezultat podobny do przedstawionego na rysunku 15.5.
Zdarzenia losowe
Je,li zdarzy si, e zobaczysz ten sam rekord pojawiajcy si kolejny raz, nie znaczy to, e co,
poszo nie tak. Po prostu prawdopodobie-stwo wybrania jednego z naszych rekordw wynosi 1/3.
K
Po%cz Twj obrazek
z polem obrazek
w zestawie
rekordw
rsBanner
Powiniene+
zobaczy baner
reklamowy.
Kliknij przycisk
refresh,
by zobaczy
losowo
wygenerowany
obrazek
Dodamy teraz cze do banera. Jest to proces podobny do tego, ktry wanie zakoczylimy. Zaznacz cay baner reklamowy (moesz to zrobi w trybie Live Data, jeli
chcesz), po czym wybierz Make Link z menu Modify. Bdziesz ponownie zapytany o plik,
do ktrego chcesz utworzy cze. Tak jak to zrobie ze rdem pliku, kliknij Select
File z menu Data Source. Tym razem jednak, zamiast wybiera pole obrazek, wybierz
pole url i kliknij OK, jak pokazano na rysunku 15.6. W ten sposb wstawilimy do cza URL z bazy.
Tak oto ukoczylimy podstawowy program losowego generowania paska reklamowego. Obejrzyj teraz swoj stron w przegldarce i sprawd, co si dzieje. Masz stworzon
kompletn aplikacj do losowej zamiany obrazkw na stronie.
Zestaw rekordw jest losowo tworzony za kadym razem, gdy wykonujemy zapytanie
w bazie. Nie oznacza to jednak, e moesz skopiowa i wklei dynamiczny obrazek
w inne miejsce danej strony, aby mie kilka miejsc, w ktrych s losowo generowane
obrazki. W tym celu musiaby, zdefiniowa kilka zestaww rekordw na podstawie
tego samego zapytania, a kady z nich zwrciby Ci pojedynczy obrazek.
K!
"
#
"
Ustaw po%czenie
do pola URL
Taki projekt, mimo jego prostoty, doczaem do prawie kadej komercyjnej strony,
jak tworzyem. Standardowo jest to robione przez oddzielny skrypt CGI, lecz UltraDev
pozwala tworzy i zarzdza t wa,ciwo,ci w atwy sposb, poprzez intuicyjny interfejs.
Brakuje w tym projekcie pewnej rzeczy moliwo,ci pamitania, jaki obrazek uytkownik
widzia poprzednim razem, gdy odwiedza stron, oraz moliwo,ci niewy,wietlania
tego obrazka przy ponownym wej,ciu. Mona tego dokona poprzez wysanie cookie,
w ktrym bdzie przechowana nazwa pliku wy,wietlonego wcze,niej i uycie go w celu
przefiltrowania zbioru rekordw. To jest zaawansowana funkcja, ktra wymaga rcznej
edycji kodu HTML nauczysz si tego w rozdziale 17.
Innym popularnym typem dynamicznego obrazka, ktry moesz doda do swojej strony, jest obrazek zmieniajcy si w zalenoci od pory roku lub dnia. Jest to stosowane
wtedy, gdy masz zdefiniowan zawarto strony i chcesz j automatycznie uaktualni,
gdy minie okrelona data. Zmienianie szaty graficznej caego serwisu co miesic lub
czciej sprawia wraenie, jakby strona bya cigle aktualizowana, nawet gdy Ty nic
przy niej nie robisz.
Ten projekt jest bardzo podobny do poprzedniego, lecz wymaga drobnej modyfikacji
zapytania i tabeli.
Tak, jak w poprzednim przykadzie, tabela dla dynamicznych obrazkw bdzie prosta.
Musimy zapamita nazw obrazka oraz dat i czas. Rozwizanie, ktre przedstawi
poniej bdzie zmienia obrazek w zalenoci od okrelonej daty. Po przeczytaniu tego
rozdziau bdziesz mg zmieni pola tabeli tak, aby zmiana obrazka nastpowaa co
dzie, miesic, rok czy te z innych powodw.
*
K
MySQL udostpnia zbir funkcji, ktre pozwalaj szybko operowa na danych zalenych
od daty. Moesz czy ze sob ponisze funkcje, aby utworzy zapytanie, ktre bdzie
spenia nasze wymagania:
$% (). Zwraca warto numeryczn reprezentujc dzie tygodnia.
dniem roku, natomiast 31 grudnia jest 365 dniem roku (lub 366, jeli rok jest
przestpny).
! (). Zwraca nazw dnia tygodnia, a nie numer dnia.
!&! (). Zwraca nazw miesica w danej dacie.
$% (). Zwraca warto numeryczn (1-52) odpowiadajc numerowi
tygodnia w roku.
#'
. Zwraca biec dat.
#'
. Zwraca biec godzin.
! $. Zwraca biec dat i godzin.
Aby zapozna si z pen list funkcji MySQL, zajrzyj do dodatku B, Krtki przewodnik
po funkcjach MySQL.
W celu zaoszczdzenia czasu uyjemy tych samych obrazkw, ktrych uywalimy poprzednio. Tym razem jednak nie bd pojawia si losowo, ale bd zalene od konkretnej
daty. Jeli daty w tym przykadzie ulegn przedawnieniu, zmie je tak, by byy aktualne:
-
(
3
!=0::02
-
(
3
!=:0=0=
-
(
3
! !=:0>02
K!
"
#
"
!1=0::021
1
! !1=:0>021
/0000000000000000000000000/00000000000000000/
23
: :B
Funkcja
jest potrzebna po to, by data najblisza dzisiejszej bya na pocztku
tabeli. Jeli j pominiesz, otrzymasz wynik, w ktrym daty zostan wywietlone tak, jak
byy wstawiane do tabeli.
Podobnie jak w projekcie z banerem, interesuje nas tylko pierwszy rekord z zapytania.
Moesz albo uywa tylko jednego rekordu w zbiorze rekordw, albo uy funkcji :
#$%&'&()*+,-.-
(
3?@&,&73;$(A,57)&-,5&, 6
73;'9.9):
/0000000000000000000/00000000000000000/
1
173;1
/0000000000000000000/00000000000000000/
1
!1=0::021
/0000000000000000000/00000000000000000/
:3
C:
Otrzymujesz w ten sposb konkretny obrazek, ktry zostanie uyty, gdy minie okrelona data.
Wykonamy teraz takie same czynnoci jak w poprzednim przykadzie, aby wstawi
nasz obrazek na stron:
Wstaw obrazek na stron, ktra jest poczona z polem obrazek Twojego nowego
zestawu rekordw.
Jak widzisz, jest to prostsze ni losowe wybieranie obrazkw, poniewa pracujemy tylko na jednym polu w tabeli. Niestety, mimo e ten i poprzedni przykad s bardzo proste i przejrzyste, nie nadaj si do uytku na szersz skal.
K
Stwrz
zaawansowane
zapytanie
w taki sposb,
jak w przypadku
banera
K!
"
#
"
$
Nowa definicja tabeli )*+#)(,- zawiera pole )- oraz pole ./, ktre bdzie zdefiniowane w dodatkowej tabeli. Pole )- bdzie uyte do identyfikacji
obrazka przez nazw abstrakcyjn, a nie przez rzeczywist nazw pliku. Taki zabieg
pozwoli wywoa obrazek nazwany MjTytu czy te podobnie, niezalenie od rodzaju
schematu, nawet wtedy, gdy rzeczywiste nazwy plikw bd rne.
%
95%
73;
95%
W tablicy tematw pole ./ zwizane jest z polem *0-1+. Na przykad,
moesz wstawi schemat dotyczcy wit Boego Narodzenia, zwizanego z dat 25
XII 20XX. Nowa baza danych przedstawiona jest na rysunku 15.9.
Nowy schemat zmian
oparty na datach
u$ywa dwch tabel
jedn% na
przechowywanie
obrazkw, drug% na
schematy tematyczne
przyporz%dkowane
datom aktywacji
Najlepszym sposobem zrozumienia sposobu dziaania tworzonego systemu jest wprowadzenie kilku przykadowych danych i przetestowanie dziaania zapytania.
-
(
3
!: ;!
!3
-
(
3
!=2 ;!
!3
-
(
3
!D> ;!
!3;
-
(
3
!= ;!
!33
%=0D0=:
%
=0:=0=:
%;
=0B0=:
%3
=020=:
Taki zbir danych tworzy cztery rne schematy (wiosna, lato, jesie, zima) oraz cztery
rne obrazki wstawiane w nagwku strony. Tym, co czyni ten system lepszym od poprzedniego, jest fakt, i umoliwia on przechowywanie w jednej tabeli rnych obrazkw (dotyczcych nie tylko nagwka).
Aby zastosowa nowy ukad, musimy zmodyfikowa poprzednie zapytanie SQL tak, by
utworzy relacj pomidzy tabelami i wybra waciwy obrazek okrelony za pomoc
abstrakcyjnej nazwy:
#$%&'&()*+,-.-
(
3?@&,&73;$(A,57)&-,5&, 6
73;'9.9):
%
K
Poniewa nie mielimy jeszcze do czynienia z tak skomplikowanym zapytaniem, przyjrzyjmy si mu dokadnie:
)*+#)(,-2./3./2./. Tworzy relacj pomidzy
dwoma tabelami (tabel obrazkw i tematw), czc je polem ./.
./2 *0-1+
#'
. Porwnuje biec dat z dat aktywacji
zapisan w tabeli ./.
)*+#)(,-2)-345,-*4. Wybiera obrazek nie tylko na podstawie daty
Ostatnim zadaniem w tym rozdziale bdzie stworzenie ksigi goci. Warto tak ksig
wdroy w witrynie osoby dokonujce w niej wpisw maj uzasadnion pewno, e
ich uwagi bd czytane. Ile razy, odwiedzajc witryn internetow, klikae cze po to,
by zostawi swoj opini? Okazywao si wtedy, e otwierao ono jedynie Twojego
klienta pocztowego po to, by mg wysa e-maila do bezimiennej osoby, ktra zapewne i tak nie odpisze. Ksiga goci umoliwia zostawienie na stronie znaku swojej
obecnoci i nie moe by tak atwo ignorowana.
Jestem przekonany, e masz pewne obawy co do wiadomoci, jakie uytkownik moe
zostawi w ksidze goci. Niestety, to s suszne obawy. Jest wiele niemiych osb, ktre
wykorzystaj kad szans, aby wypowiedzie si na forum publicznym i pokaza w ten
sposb swoj niedojrzao. Nieodpowiedni jzyk, osadzanie obrazkw, nieodpowiednie znaczniki HTML w tekcie to jedne z moliwych problemw, ktre si bd pojawia. Zobaczmy, czy ta ksiga goci bdzie moga sobie poradzi z niektrymi z nich.
K!
"
#
"
Zawarto tabeli dotyczcej ksigi goci zaley wycznie od Ciebie od tego, ile informacji chcesz w niej przechowywa. Przykadowa ksiga goci stworzona w tym
wiczeniu bdzie zawiera nazw uytkownika, e-mail oraz komentarz.
Tabel mona zdefiniowa nastpujco:
F
95?
G
3>
3=>
<95?
Uylimy tutaj po raz pierwszy typu ,6+/ dla pola $+,/,(+. Funkcja ta
automatycznie zwiksza numer tego pola, gdy nowy rekord jest dodawany. Nie musisz
si zatem martwi o samodzielne generowanie kolejnego numeru. Niestety, typ ten rni
si w zalenoci od konkretnej bazy danych i by moe bdziesz musia uy innej funkcji. Jeli nie uywasz MySQL, moesz uy treci wiadomoci jako klucza gwnego,
poniewa jest raczej niemoliwe, by rni ludzie mogli napisa identyczn wiadomo.
Poniewa nie bdziemy pamita ju adnej innej informacji, tabela bdzie wyglda
jak na rysunku 15.10.
W tabeli tblKomentarz
mo$esz przechowywa
wiadomo+ci oraz
inne dane, ktre mog%
by Ci potrzebne
Zapytanie SQL, ktre wybierze i wywietli ca zawarto ksigi goci, ma nastpujc
posta:
%&'&()*+,-.F
Mona zdefiniowa zestaw rekordw zawierajcy wszystkie wiadomoci, po czym uporzdkowa je i stworzy pen list wiadomoci. Nie rozwie to jednak kilku problemw kolejnoci, w jakiej maj by ustawione wiadomoci, oraz tego, e pewne wiadomoci mog nie by warte pokazania.
Najlepiej sprawdzi ten mechanizm, wprowadzajc pewne przykadowe dane do naszej
tabeli. Chc zachowa kultur jzyka, dlatego bd wstawia do bazy komentarze ocenzurowane. Gdy bdziesz tworzy wasn witryn, moesz rozszerzy zakres sw dyskwalifikujcych dan wiadomo.
&
K
F
H
,;I
8;
;J3
KL-;
F
,
8
I
!
83;
F
5I M
;;
L-3NOEP"333 P$;JO$
3"
H
,
"
;I
3"
8;
;J3
KL-;
*****************************= 3*********************************
95?" 2
8"
5
&"
I
.!"
M
;;
L-3NOE
P"333 P$;JO$
=3
:
Jak widzisz, nasze zapytanie trzeba rozszerzy o nowy warunek. Poniewa nie chcemy
pozwoli na to, by wiadomo zawieraa w sobie znaczniki HTML, ostateczna posta
zapytania powinna wyglda nastpujco:
#$%&'&()*+,-.F
?@&,&38-)'9F&PQ
QP78538-)
'9F&PQOQ$QPRS
*****************************: 3*********************************
95?" :
8"
H
,
&"
;I
.!"
8;
;J3
KL-;
:3
C
K!
"
#
"
'
Pora na stworzenie strony w HTML-u, ktra umoliwi wykonanie wpisu w ksidze goci.
Nastpnie wstaw takie elementy formularza, jakie s Ci potrzebne. Najpierw wstaw tabel, aby mie waciwy ukad strony. Wstawimy trzy pola z nastpujcymi nazwami:
)-
/+
-+,/,(
(
K
Dla zaspokojenia Twojej ciekawo,ci dodam, i wieloliniowe pole tekstowe nie jest
w rzeczywisto,ci zwizane z polem tekstowym jednoliniowym czy te polem z hasem.
Jest to zupenie inny obiekt formularza, zwany :, ktry moe zawiera wiele
linii tekstu.
Na koniec wstawimy do formularza przycisk Submit. Kliknicie tego przycisku zachowa w bazie danych nowy komentarz. Ostateczna wersja formularza przedstawiona jest
na rysunku 15.11.
Jest to przykad
formularza
pozwalaj%cego
zamieszcza uwagi
Ostatnim czynnoci jest dodanie behawiora Insert Record z palety Server Behavior.
W ten sposb dodamy nowy komentarz do bazy danych.
K!
"
#
"
)
Po%cz elementy
formularza
z odpowiednimi
polami
w bazie danych
$&
-+,/,(
!
%
4774
!
-+,/,(
!
%
4774
$+,/,(+
#.
Zauwaye jakie zmiany? Jeli tak, to dobrze, bo kod si zmieni. Zamiast napisu
777 uylimy 77. Moesz pozostawi pierwsz wersj zapytania, o ile nie uywasz
ASP. Problem jest taki, e zapis 7
,)
7 reprezentuje osadzone polecenie ASP i jeli
E..G
(:>G%
!
(
%EP%&'&()*+,-.F
?@&,&38-)'9F&Q
Q785
38-)'9F&QO$Q-,5&, 695?5&%(P
(
()E
(
('
E=
(
')E2
(
-
(
G
,3E
Q$
*
K
To jest fragment tworzcy zestaw rekordw i zapytanie. Zmie ten kod, uywajc nowej zmiennej ;, ktr rcznie wczysz do treci zapytania:
OQ
(
E% (-;P75- 5 ,P
(
7(
E..G
(:>G%
!
EPQP
(
%EP%&'&()*+,-.F
?@&,&38-)'9F&Q
Q785
38-)'9F&QOP//P$Q-,5&, 695?5&%(P
(
()E
(
('
E=
(
')E2
(
-
(
G
,3E
Q$
Przecignij pole -+,/,( oraz )- z okna Data Bindings do naszej strony. W ten
sposb bdziemy mogli wywietli tylko pierwszy rekord z otrzymanego zestawu rekordw, a co z pozostaymi?
K!
"
#
"
Aby wywietli wszystkie rekordy, musisz doda behawior serwera Repeat Region.
Wybierz liczb
rekordw
do wy+wietlenia
W ten sposb zakoczylimy wszystkie projekty przewidziane w tym rozdziale. Ostateczny wygld projektu naszego dokumentu jest przedstawiony na rysunku 15.15.
Przetestuj nowy system sprbuj doda kilka komentarzy do bazy danych. Rwnoczenie sprawd opcje filtrowania wiadomoci. Waciwie teraz naleaoby wstawi
sowa, ktre rzeczywicie chciaby usun z otrzymywanych wiadomoci.
Ksi%$ka go+ci
powinna wygl%da
nastpuj%co
K
Projekty zamieszczone w tym rozdziale mog by umieszczone na istniejcych statycznych stronach internetowych, podnoszc ich funkcjonalno i atrakcyjno.
Zastosowanie funkcji SQL powoduje znaczny wzrost elastycznoci pracy w programie
UltraDev. Pki co, UltraDev jest narzdziem, ktre pozwala wstawia informacje do
bazy danych i wywietla te, ktre s w niej przechowywane. Od Ciebie zaley, w jaki
sposb poczysz moliwoci oferowane przez rodowisko UltraDev oraz serwer bazy
danych.
Niestety, dowiedziae si rwnie, e UltraDev ma swoje wady. Rczna edycja kodu
rdowego po zdefiniowaniu zoonego zapytania jest powszechna, ale zwykle nie jest
trudna. Umiejtno znalezienia miejsca, w ktrym znajduje si kod rdowy dostpu
do bazy danych, jest kluczem do znajdywania i rozwizywania problemw.
W nastpnym rozdziale zajmiemy si definiowaniem i tworzeniem kompletnej aplikacji
internetowej. Nie bdzie to proste zadanie, lecz bd stara si wytumaczy Ci to jak
najlepiej.