You are on page 1of 33

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

Dreamweaver UltraDev 4.
Vademecum profesjonalisty

Autor: John Ray


Tumaczenie: Szymon Drejewicz, Iwo Nowosielski,
Jan Ostrowski, Tomasz Wrona
ISBN: 83-7197-431-0
Tytu oryginau: TY Dreamweaver UltraDev 4 in 21
days
Format: B5, stron: 650
Firma Macromedia jeszcze raz wywizaa si z zadania stworzenia rodowiska do
projektowania aplikacji sieciowych, ktre cz si dynamicznych witryn z istniejcym
interfejsem Dreamweavera. Program Dreamweaver UltraDev jest jedynym w swoim
rodzaju rodowiskiem projektowania wykorzystujcym najnowsze pomysy i metody.
UltraDev udostpnia nie jedn, ale trzy rne technologie serwera (JSP, CFML, ASP),
z moliwoci rozszerzenia rodowiska pracy o nowe technologie poprzez pluginy.
Ponadto firma Macromedia stworzya wersje programu dla Windows i dla Macintosha,
umoliwiajc uytkownikom komputerw Macintosh -- zmuszonych wczeniej do
pisania kodu na komputerach Windows -- powrt do znajomych pulpitw.
Pakiet UltraDev moe tworzy witryny internetowe w peni sterowane przez bazy
danych poprzez interfejs wska i kliknij (point and click). W odrnieniu od innych
pakietw, oferuje on projektantowi moliwo podgldu danych w czasie rzeczywistym
wewntrz interfejsu UltraDeva. Program UltraDev czyni ycie znacznie atwiejszym,
umoliwiajc osobie projektujcej mechanizmy aplikacji prac tylko z baz danych,
podczas kiedy projektanci pracuj nad ukadem strony. Skoczyy si czasy
ustawicznego przesyania plikw.
Po przeczytaniu tej ksiki bdziesz umia wykorzysta wszystkie moliwoci
programu UltraDev. Niezalenie od tego, czy kiedykolwiek pracowae z
Dreamweaverem lub edytorem HTML, ju wkrtce bdziesz tworzy swoje wasne
witryny internetowe sterowane przez bazy danych. Jedynym warunkiem zrozumienia
wiadomoci zawartych w tej ksice jest podstawowa znajomo HTML-a i dostp do
komputera pracujcego pod kontrol Windows lub MacOS.
Po zakoczeniu lektury ksiki bdziesz umia szybko i z atwoci tworzy rnorodne
aplikacje sieciowe w trzech rnych technologiach serwerw. Staniesz si jednym
z wadcw wiata dynamicznych aplikacji.

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

 

Wykorzystanie behawiorw do tworzenia podpowiedzi


wywietlanych bezporednio na stronie WWW.........................................................123
Wykorzystanie behawiorw do otwierania nowego okna przegldarki ........................126
Technika przecignij i upu na stronach WWW? ....................................................128
Tworzenie animacji za pomoc narzdzia Timelines ..........................................................133
Paleta Timelines ............................................................................................................133
Klatki kluczowe animacji ..............................................................................................135
cieki ruchu .................................................................................................................136
Inne polecenia palety Timelines ....................................................................................138
Flash? Ale nic prostszego! .................................................................................................138
Przyciski Flash...............................................................................................................139
Tekst Flash.....................................................................................................................140
Inne techniki oywiania tworzonych w UltraDev dokumentw WWW..........................141
Narzdzie programisty JavaScript .......................................................................................142
Podsumowanie .....................................................................................................................144
Pytania i odpowiedzi............................................................................................................145




.&/!
% 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


     

Projektowanie baz danych ...................................................................................................185


Sownictwo zwizane z modelowaniem struktur baz danych .......................................186
Normalizacja w praktyce ...............................................................................................188
Od modelu danych do bazy danych...............................................................................194
Podsumowanie .....................................................................................................................198
Pytania i odpowiedzi............................................................................................................199




$! %
&%/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

 

Data Bindings ......................................................................................................................260


Dane pozyskiwane dynamicznie ...................................................................................260
Powizania danych z elementami dokumentw............................................................261
Uwierzytelnianie uytkownikw .........................................................................................263
Log In User....................................................................................................................264
Restrict Acces To Page..................................................................................................265
Log Out User .................................................................................................................266
Check New Username ...................................................................................................267
Tworzenie i modyfikowanie behawiorw serwera ..............................................................267
Podsumowanie .....................................................................................................................270
Pytania i odpowiedzi............................................................................................................270


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

 

 $  %


  & '   (#)


.!
-/
+
/!  
!  '% %
  %-

 %%
% #)
Przejcie od stron statycznych do dynamicznych................................................................397
Losowe wybieranie banerw ...............................................................................................399
Definicja tabeli ..............................................................................................................400
Przykadowe dane..........................................................................................................400
Zapytanie SQL...............................................................................................................401
Implementacja ...............................................................................................................402
Obrazki okresowe i czasowe................................................................................................405
Definicja tabeli ..............................................................................................................405
Zapytanie SQL...............................................................................................................406
Wiele obrazkw okresowych i czasowych....................................................................408
Pozyskiwanie opinii od uytkownikw ...............................................................................410
Definicja tabeli ..............................................................................................................411
Zapytanie SQL...............................................................................................................411
Tworzenie dokumentu HTML .............................................................................................413
Podsumowanie .....................................................................................................................418
Pytania i odpowiedzi............................................................................................................418


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

"


     

System logowania i rejestracji .............................................................................................455


Strony zwizane z rejestracj ........................................................................................456
Strony zwizane z logowaniem .....................................................................................460
Zawarto witryny ...............................................................................................................463
Preferencje ...........................................................................................................................469
Podsumowanie .....................................................................................................................473
Pytania i odpowiedzi............................................................................................................473


(
. 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

 

System katalogu ...................................................................................................................538


Formularz wyszukiwania...............................................................................................538
Wyniki wyszukiwania ...................................................................................................539
Strony szczegowe .......................................................................................................540
Elementy pokrewne .......................................................................................................542
Czyszczenie strony ........................................................................................................542
System uwierzytelniania uytkownika ................................................................................543
Strony zgoszenia...........................................................................................................544
Strony logowania...........................................................................................................545
Koszyk .................................................................................................................................547
System sprawdzania.............................................................................................................549
Widok koszyka ..............................................................................................................549
Kocowe sprawdzanie...................................................................................................553
Strona zamykajca.........................................................................................................556
Podsumowanie .....................................................................................................................557
Pytania i odpowiedzi............................................................................................................557


"
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

 / )


 /

! !%
0!/
 

 !%-
 ,  (
Menu ....................................................................................................................................581
Okna dialogowe i okienka ...................................................................................................582

 /
<

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.

Jeli tworzye witryny internetowe, zanim zacze czyta t ksik, dowiadczye


zapewne wielu sytuacji, w ktrych mgby uy dynamicznych narzdzi w celu poprawienia funkcjonalnoci tych witryn, uatrakcyjnienia ich czy te sprawienia, by byy
cigle atrakcyjne. W tym rozdziale przyjrzymy si kilku krtkim aplikacjom stworzonym za pomoc programu UltraDev, ktrych moesz uy w celu dodania lub zastpienia istniejcych, statycznych czci Twojej strony. Staraem si wybra takie aplikacje,
w ktrych wykorzystanie baz danych nie jest widoczne na pierwszy rzut oka. W rozdziale zostan omwione nastpujce zagadnienia:
 uruchamianie i wykorzystanie projektw z poprzedniego rozdziau w sposb

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

reklam innych stron. Za kadym razem, gdy uytkownik odwiedza stron,


obrazek na niej zmienia si. T metod moesz wykorzysta zarwno wobec
banerw reklamowych, jak i obrazkw.
 Okresowe lub czasowe obrazki. Czy chciaby, aby Twoja strona bya

aktualizowana w zalenoci od pory roku? Czy chciaby zmienia szat graficzn


tak, by odzwierciedlaa kolor lici na drzewach? Zmienianie grafiki na stronie
czyni j zrnicowan i interesujc, przy czym nie wymaga adnej dodatkowej
pracy, z wyjtkiem zainicjowania sposobu zmian.
 Ksiga goci. Czsto wystpujcym elementem witryn internetowych jest ksiga

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!
"
  #  "

Zanim rozpoczniemy, przedstawi krtko zagadnienia omwione w ostatniej czci tej


ksiki. Moim zdaniem najlepsz nauk jest praktyka. Dreamweaver UltraDev sam w sobie nie jest programem skomplikowanym. Do tej pory zapoznae si ze wszystkimi
funkcjami programu, wiesz take, gdzie mona je znale. Bardziej skomplikowane jest
utworzenie ukadu dokumentu HTML w UltraDev ni wykorzystanie dynamicznych narzdzi do utworzenia poczenia z baz danych. Z tego powodu ostatnia cz ksiki
jest powicona praktycznym przykadom, ktre maj zademonstrowa moliwoci
programu UltraDev w poczeniu z serwerem SQL. Wszystkie przykady z tego rozdziau s zgodne z serwerem MySQL, wic moesz je napisa i uruchomi bez dodatkowych kosztw.
Wszystkie pozostae rozdziay s podzielone na trzy czci:


Projekt bazy danych. Najwaniejsz czci kadego projektu jest waciwe


zaprojektowanie procesw drugoplanowych bazy danych. Pewne ograniczenia
UltraDev mona omin, piszc odpowiednie zapytania. Nawet jeli masz
dowiadczenie w pracy z bazami danych, powiniene zwrci szczegln
uwag na t cz.



Projektowanie witryny. Zanim zaczniesz programowa czy te pisa kod HTML,


musisz zdecydowa, jak strona ma wyglda. Nie zajmuje to zwykle duo czasu,
ale nie moe zosta pominite. Nie moesz zacz tworzenia stron, dopki nie
bdziesz mia cakowitej pewnoci, jak ma wyglda Twoja witryna. Brak
ustalonej wczeniej struktury moe by przyczyn wielu problemw.



Implementacja. Kady rozdzia zawiera w sobie cz implementacji caego


projektu, czyli kod HTML, wykorzystanie behawiorw serwera i inne czynnoci.
Czasem bdzie to wymaga rcznej edycji kodu rdowego. Gdy implementacja
zostanie zakoczona, bdziesz mia w peni funkcjonaln witryn internetow,
gotow do umieszczenia na serwerze. Pozostaje Ci jedynie stworzenie zawartoci
odpowiadajcej Twoim potrzebom, lecz struktura serwisu bdzie ju gotowa.

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:
 


   


 


  


Dowiedziae si ju, e nie moemy przechowywa obrazkw w tabeli, ale moemy


przechowywa w niej nazwy ich plikw, a nastpnie wstawi te nazwy w znaczniki .
Otaczajc obrazki znacznikami, tworzymy cze, ktre wypenione jest polem .
Rysunek 15.1 przedstawia schemat tabeli uytej w aplikacji wywietlajcej baner.


Tabela Banner
przechowuje
lokalizacj obrazkw
oraz adres URL

 
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.

Wprowadmy przykadowe dane do tabeli w bazie:




  

 

 !"  
   


  

 

 !"  
   


  

 


! !"
!
 
   


 
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
1


! !1"
!  
   1
/0000000000000000000000000/000000000000000000000000000000000000000/
2 3
  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
   
  

#$%&'&()*+,-. 

-,5&, 6,785 '9.9):


/0000000000000000000000000/000000000000000000000000000000000000000/
1  11
/0000000000000000000000000/000000000000000000000000000000000000000/
1


! !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:


Zestawu rekordw zawierajcego obrazki, ktre maj by wywietlone bdzie


on zawiera obrazek, ktry chcemy wywietli. Poniewa kod SQL mamy ju
gotowy, wystarczy na jego podstawie stworzy zapytanie w UltraDev.



Obrazka, ktrego plik rdowy bdzie okrelany przez zestaw rekordw.



cza otaczajcego obrazek i zwizanego z polem URL.

Rozpoczniemy od wstawienia na stron zestawu rekordw, poniewa wszystkie inne


elementy bd korzysta z jego pl.
Otwrz palet Server Behavior i kliknij przycisk +, nastpnie wybierz opcj Recordset
z menu rozwijanego. Poniewa to zapytanie wymaga uycia specjalnych funkcji, nie
bdziesz mg losowo wybiera zwracanego rekordu w trybie prostego tworzenia zapytania. Kliknij przycisk Advanced, aby przeczy si w tryb zaawansowany.
W widoku zawansowanego zapytania, przedstawionym na rysunku 15.3, moesz rcznie wskaza zapytanie, ktrego chcesz uy na stronie. atwiej jest pracowa w trybie
zaawansowanym, poniewa jest on bardziej elastyczny, jednak wymaga to wprawy.
Skonfiguruj zaawansowane zapytanie tak, jak poprzednio:


Stwrz zapytanie o nazwie rsBanner.



Wybierz biece poczenie, ktre stworzye dla projektu.



Wprowad ponisze zdanie jako tre zapytania:   


 




!   ".

  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
   
  


Definicja tabeli opartej na zmianie obrazka wzgldem daty jest nastpujca:


- (  3
   


73;
<  


Rysunek 15.7 przedstawia stosown tabel.




Tabela podobna do tej,
ktra bya wykorzystana
w poprzedniej aplikacji,
bdzie u$yteczna
przy zamianie
obrazkw opartych
na okre+lonej dacie


 
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.

Tutaj 1=niedziela, 2=poniedziaek itd.


  
(). Zwraca dzie roku, na przykad 1 stycznia jest pierwszym

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!
"
  #  "



Najwaniejszym zadaniem jest waciwe rozpoczcie tworzenia zapytania. Oczywistym


jest fakt, e musimy zna biec dat zwracan przez funkcj #'
  lub ! $
nie moemy jednak po prostu porwna daty dzisiejszej z dat przechowywan
w tabeli. Daoby to nam w rezultacie rekord z pewn dat. My prbujemy zrealizowa
zbudowanie systemu, ktry wybiera obrazek, gdy mina okrelona data. W tym celu wybierz rekordy z bazy, w ktrych data z pola dataAktywacji jest wiksza ni data bieca:
#$%&'&()*+,-.- (  3?@&,&73;$(A,57)& -,5&, 6
73;
/0000000000000000000000000/00000000000000000/
1  173;1
/0000000000000000000000000/00000000000000000/
1

 !1=0::021
1

  !1=:0=0=1


1


! !1=:0>021
/0000000000000000000000000/00000000000000000/
2 3
 : :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:


Dodaj zestaw rekordw ( )*+#)(,- do dokumentu, ktry zawiera


stworzone wczeniej zapytanie. Rysunek 15.8 przedstawia poprawnie
zdefiniowany zestaw rekordw.



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

      


Najbardziej podoba mi si to, e tworzc system zarzdzania obrazkami w zalenoci
od danej daty, nie musimy troszczy si o zachodzce zmiany. Moesz zosta porwany
przez kosmitw i znale si na stacji kosmicznej, a w tym czasie serwer bdzie si
troszczy o zmian wygldu Twojej strony.
Tak sprecyzowany sposb zarzdzania obrazkami w zalenoci od daty dziaa tylko
w odniesieniu do pojedynczego obrazka, co jest ewidentnym problemem. Wszystkie obrazki znajdujce si w tabeli  )*+#)(,- s uywane jako wariacje dotyczce
pojedynczego obrazka. Idealnym rozwizaniem byoby stworzenie systemu tematycznego, w ktrym rne obrazki byyby przechowywane w tabeli i dotyczyy caej grupy
danych. Jedynym sposobem w obecnym systemie byoby tworzenie nowej tabeli dla
kadego obrazka. Potrzebujemy innego rozwizania.
Przykadowo, mgby mie schemat strony na Halloween, ktry poczony z odpowiednimi zapytaniami zastpiby obrazki wywietlane na stronie jakimi strasznymi zdjciami. Zamiast zastpowa pojedynczy obrazek, mona zastpi wszystkie elementy
graficzne, korzystajc z jednej tabeli.
Aby to zrobi, musimy przedefiniowa istniejc tabel i doda jedn now:
- (  3
   



 3 


95% 


  
 395%


  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
   
  


Powyszy wpis musimy zmieni na nastpujcy:


#$%&'&()*+,-.- (  3%?@&,&- (  3 95%
E% 95%78595% 73;$(A,57)& 785- 
(  3
 3E
! 3-,5&, 6% 73;'9.9):

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

aktywacji, lecz rwnie na podstawie abstrakcyjnej nazwy nadanej kademu polu.


Uycie nowego systemu wymaga uaktualnienia bazy danych i zastpienia zapytania.
Wci jednak musisz zdefiniowa osobne zapytania dla kadego z obrazkw, ktre
chcesz wywietla na stronie. Ten system jest lepszy od poprzedniego. Wystarczy bowiem tylko jedna tabela, wic nie ma potrzeby tworzenia nowej dla kadego obrazka
umieszczanego na stronie.
Jak wspomniaem wcze,niej, UltraDev pki co nie ma moliwo,ci przechowywania
obrazkw ani adnych innych obiektw binarnych bezpo,rednio w bazie danych.
Mam nadziej, e moliwo, taka pojawi si w nastpnej wersji. Je,li tak si stanie,
aplikacje bd mogy ,ciga nowe obrazki bezpo,rednio do bazy danych. Moesz
rwnie dobrze napisa to dzi,, ale bdzie to wymaga dodatkowego oprogramowania
w celu otrzymania danych, zapisania ich na dysku, a nastpnie odwoania si do nich
z poziomu bazy danych.

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$

Z tych trzech przykadowych wiadomoci tylko pierwsza powinna by wywietlona.


Druga wiadomo zawiera niepodane sowo durna, chocia bywaj komentarze
znacznie bardziej wulgarne. Z kolei trzecia wiadomo zawiera cze do innej strony
HTML spoza Twojego serwisu nie chcemy, by uytkownik mg wywietli wiadomo z odnonikiem do swojej strony internetowej.
Filtrowanie wiadomoci odbywa si poprzez zablokowanie w zapytaniu sw, ktrych
nie yczysz sobie oglda w wiadomociach.
Wyprbujmy dla tego przykadu nastpujce zapytanie:
#$%&'&()*+,-.F 
 ?@&,&3  8-)'9F&PQ
QPRS
*****************************:  3*********************************
95?  " :

 3"
H 
,
"
;I 
   
3  "
8; 
;J3 KL-;
*****************************=  3*********************************
95?  " 2
8"
5
&"
I  
.!"
M 
; ;
L-3NOE
P"333     P$ ;JO$
= 3
 :

Wiadomo zostaa przefiltrowana dziki uyciu konstrukcji $&


-+,/,( !  %
77. Filtr tego zapytania bazuje na wzorcu wzitym z pola -+,/,(. W tym
przypadku wzorcem jest sowo  otoczone czymkolwiek, co jest reprezentowane
przez symbol 7. Moesz poczy ze sob tyle warunkw, ile w danym momencie potrzebujesz.
Przykadowo, aby pozby si sw takich jak durne, lampa czy krzeslo, uyj nastpujcej konstrukcji:
#$%&'&()*+,-.F 
 ?@&,&3  8-)'9F&PQ
QP7853  8-)
'9F&PQQP7853  8-)'9F&P  P

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 
 ?@&,&3  8-)'9F&PQ
QP7853  8-)
'9F&PQOQ$QPRS
*****************************:  3*********************************
95?  " :
8"
H 
,
&"
;I 
   
.!"
8; 
;J3 KL-;
: 3
 C

  K!
"
  #  "

'

I to wszystko, co chcielimy tutaj osign. Wiadomo, ktra bdzie zawiera kod


HTML, zostanie zablokowana, jeli bdzie zawiera znaki  oraz jakiekolwiek inne
znaki pomidzy nimi i na ich kocach.
Ostatni czynnoci, jak moesz wykona, jest dodanie napisu

  $+,/,(+
# na kocu kwerendy, eby najnowsze wiadomoci byy pokazane jako pierwsze.
Zapytanie zdefiniowane powyej bdzie pasowa do czegokolwiek, co przypomina
znacznik HTML. Wa,ciwie bdzie pasowa do wszystkiego, co bdzie miao znak  na
pocztku oraz  na ko-cu. Nie jest moliwe uycie wszystkich znacznikw jako wzorca,
moesz jednak uy niektrych z nich, jak na przykad  .8 lub +/5.

Pora na stworzenie strony w HTML-u, ktra umoliwi wykonanie wpisu w ksidze goci.

Podobnie jak w przypadku poprzednich dwch projektw, pominiemy tworzenie mapy


serwisu, poniewa lista goci bdzie zajmowa tylko jedn stron. Nasza strona bdzie
miaa krtki formularz, dziki ktremu bdzie mona wysa uwagi oraz same komentarze bezporednio pod tym formularzem.
Zaczniemy od stworzenia formularza, do ktrego bdzie mona wpisywa dane. Otwrz
palet Object i przecz na Forms. Tak jak w kadej stronie zawierajcej formularz, musisz najpierw wstawi na stron obiekt 8,/ bez znacznika 8,/ elementy formularza
nie bd dostpne. Dokument bdzie wyglda dobrze w oknie projektu, lecz nie pojawi
si w oknie przegldarki. Wstaw nowy formularz do dokumentu i nazwij go 8/%,/9
) zawarto tego formularza bdziesz zachowywa w bazie danych. Aby nazwa
formularz, wykonaj nastpujce czynnoci:


Otwrz palet Properties.



Kliknij znacznik 8,/, znajdujcy si na dole dokumentu w oknie projektu,


aby wybra formularz.



Zmie warto w polu Form Name na 8/%,/).

Nastpnie wstaw takie elementy formularza, jakie s Ci potrzebne. Najpierw wstaw tabel, aby mie waciwy ukad strony. Wstawimy trzy pola z nastpujcymi nazwami:
 )-
 /+
 -+,/,(

Pola te dodajemy przy uyciu pl tekstowych dostpnych w sekcji Forms na palecie


Object. Pola )- oraz /+ s zwykymi polami tekstowymi (UltraDev wstawia je
jako standard), natomiast pole -+,/,( musisz dostosowa tak, by mona byo wpisywa wicej ni jedn lini tekstu. W tym celu wybierz pole -+,/,( w projekcie
dokumentu i otwrz palet Properties. Kliknij przycisk Multiline, by zmieni typ pola.

(

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.


Otwrz palet Server Behavior.



Kliknij przycisk + i wybierz Insert Record.



Z listy rozwijanej Connection wybierz poczenie zdefiniowane dla tego projektu.



Z listy rozwijanej Table to Update wybierz tabel %,/).



W czci Get Values From wybierz formularz 8/%,/).



Kady element formularza musi mie swj odpowiednik w bazie danych.


Jeli nie bd pasowa, wybierz jeden z elementw formularza i dobierz do niego
odpowiedni kolumn w bazie oraz typ danych.



Na koniec, gdy zakoczysz wstawianie, wr do swojej strony. Nazwij j


listagosci.asp.

Odpowiednio zdefiniowane parametry behawiora s przedstawione na rysunku 15.12.


Pozostaje nam jedynie dodanie zestawu rekordw w celu wywietlenia dostpnych komentarzy oraz samo ich wywietlenie. Kod zapytania SQL mamy ju gotowy, wystarczy wic tylko umieci go na stronie.

  K!
"
  #  "

)



Po%cz elementy
formularza
z odpowiednimi
polami
w bazie danych



Otwrz palet Server Behavior.



Kliknij przycisk + i wybierz Recordset.



Kliknij przycisk Advanced, aby wybra tryb zaawansowany, o ile aktualnie


w nim nie pracujesz.



Wybierz odpowiednie poczenie z baz danych.



Nazwij nowy zestaw rekordw (#,//.



Wpisz nastpujcy kod SQL w oknie zapytania:   #  


 %,/)



Kliknij przycisk OK.

$&
-+,/,( !  % 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

wstawisz zapytanie w poprzedniej jego postaci, system si pogubi, poniewa w tym


momencie sam zamiesz regu, ktr wanie implementujesz w dokumencie.
Po wstawieniu zmodyfikowanego behawiora musisz rcznie edytowa kod tak, aby by
poprawny. Nie moesz wstawi znaku 7 tam, gdzie by chcia, poniewa UltraDev rozpozna go jako znacznik ASP. Musisz zachowa go w oddzielnej zmiennej, a pniej
wstawi t zmienn do zapytania.
Otwrz swj dokument i znajd fragment kodu, ktry wyglda nastpujco:
OQ
( 
E% (-; P75- 5 , P
( 
 7(


E..G

(:>G%
!
( 
 % EP%&'&()*+,-.F 
 ?@&,&3  8-)'9F&Q
Q785
3  8-)'9F&QO$Q-,5&, 695?  5&%(P
( 
 ( )E
( 
 ( ' 
E=
( 
 ' )E2
( 
 -

( 
G
, 3E
Q$

*

K
   
  


Pamitaj, e je,li masz kopoty ze znalezieniem kodu w dokumencie, moesz uy


funkcji Find z menu Edit.

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 
 ?@&,&3  8-)'9F&Q
Q785
3  8-)'9F&QOP//P$Q-,5&, 695?  5&%(P
( 
 ( )E
( 
 ( ' 
E=
( 
 ' )E2
( 
 -

( 
G
, 3E
Q$

W wielu projektach bdziesz musia rcznie edytowa kod programu przyzwyczaj


si wic do sprawnego poruszania si po nim w UltraDev. Czasem tylko w ten sposb
bdziesz mg sprawi, by projekt zacz dziaa.
Po dokonaniu zmian zamknij okno HTML. To wszystko, co trzeba wykona poza interfejsem UltraDev.
W dalszej kolejnoci zdefiniujemy ukad, ktry bdzie zastosowany przy wywietlaniu
komentarzy. Mj jest zwyk tabel zawierajc dwa wiersze pierwszy to tre komentarza, drugi zawiera dane autora. Adres e-mail (w mojej wersji) jest przechowywany tylko dla administratora i nie jest widoczny w ksice goci.
Otwrz okno Data Bindings i wywietl zestaw rekordw (%,/). Jest on przedstawiony na rysunku 15.13.


Twoja paleta
Data Bindings
powinna wygl%da
tak jak ta

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 dane, do ktrych chcesz zastosowa t funkcj.



Otwrz palet Server Behavior.



Kliknij przycisk + i wybierz Repeat Region.



W oknie konfiguracyjnym Repeat Region, widocznym na rysunku 15.14, wybierz


zestaw rekordw (#,//.



Wybierz liczb
rekordw
do wy+wietlenia



Ustaw maksymaln liczb wiadomoci (powtrze), ktre chcesz wywietli.



Kliknij przycisk OK.

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.

P: Czy banery reklamowe mona skonfigurowa tak, by ten sam nie by


pokazywany dwa razy z rzdu?
O: Dziki uyciu cookies przegldarka bdzie pamita (i przekazywa do serwera),
ktry pasek wywietlany by jako ostatni. W rozdziale 17. znajdziesz wicej
informacji na temat wykorzystania cookies.
P: Czy mona automatycznie wywietla obrazki okresowe w kolejnych
latach?
O: W przedstawionym przykadzie dana tematyka traci wano po upywie
okrelonej daty i nie mona jej uy ponownie. Jednake, jak powiedziano
w tym rozdziale, MySQL udostpnia funkcje do porwnywania danych
w oparciu o miesic bd dzie. Kada z nich moe dziaa przez wiele lat.
P: Czy musz modyfikowa zapytanie %<%>% na platformach serwera
innych ni ASP?
O: ASP uywa znacznika <%> na oznaczenie kodu wbudowanego i std problem
z programem UltraDev. Jeli uywasz wbudowanego jzyka, ktry w odmienny
sposb przedstawia swoje znaczniki, nie powiniene mie problemw.
P: Czy mog rozszerzy list dyskusyjn w peny system komunikacyjny?
O: Poczekaj do nastpnego rozdziau, gdy wanie tym bdziemy si zajmowa.

You might also like