Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Bazy danych i strony WWW

Podobne prezentacje


Prezentacja na temat: "Bazy danych i strony WWW"— Zapis prezentacji:

1 Bazy danych i strony WWW

2 Obsługa baz danych poprzez strony WWW
Niezbędne narzędzia: serwer baz danych np. MySQL serwer stron WWW np. Apache przeglądarka stron WWW interpretująca język HTML język skryptowy (parser) wyposażony w możliwości współpracy z systemem zarządzania bazą danych

3 MySQL MySQL jest relacyjnym systemem zarządzania bazami danych klasy Open Source stworzony i rozwijany przez firmę MySQL AB MySQL jest serwerem baz danych - pozwala korzystać z zasobów danych wielu użytkownikom (klientom)

4 MySQL monitor

5 Apache Najpowszechniej stosowany serwer stron WWW
Zarządza plikami, kieruje je do przeglądarek i parserów Zarządza klientami i ich uprawnieniami

6 PHP PHP (akronim rekursywny "PHP: Hypertext Preprocessor"), jest szeroko używanym językiem skryptowym ogólnego zastosowania, tworzonym na zasadach Open Source, dopasowanym do potrzeb aplikacji WWW, z możliwością zagnieżdżania w HTML

7 PHP PHP jest rozwijane pod kątem pisania skryptów server-side
PHP potrafi odbierać dane z formularzy, generować dynamicznie zawartość strony, odbierać i wysyłać ciasteczka

8 PHP PHP jest parserem czyli analizatorem składni, który analizuje podany w źródle tekst i w oparciu o niego tworzy kod programowy w konkretnym języku (w tym przypadku HTML)

9 HTML i XHTML http://kurshtml.boo.pl/
XHTML to skrót od Extensible Hypertext Markup Language, czyli Rozszerzalny Hipertekstowy Język Oznaczania. Reformuje on zasady języka HTML 4 w taki sposób, aby były zgodne z XML (Extensible Markup Language - Rozszerzalny Język Oznaczania)

10 Struktura dokumentu XHTML

11 Edytowanie i przeglądanie dokumentów HTML
Dokumenty HTML mogą być edytowane przez proste edytory tekstowe lub tzw. edytory znaczników np. ezHTML Zaawansowane edytory tekstowe np. Word widzą dokumenty HTML tak jak przeglądarki Przeglądarki internetowe pokazują dokumenty HTML także w trybie off line

12 Word

13 Notatnik

14 ezHTML

15 przeglądarka w trybie off line przeglądarka za pośrednictwem serwera stron www

16 Style CSS - Cascading Style Sheets (z ang. Kaskadowe Arkusze Stylów) język opracowany w celu stworzenia możliwości bardziej elastycznego zarządzania sposobem formatowania (wyglądem) elementów znajdujących się w dokumentach elektronicznych CSS nie może istnieć samodzielnie, gdyż jest ściśle powiązane z językiem opisu struktury dokumentów takim jak (X)HTML Style formatujące są wbudowane w praktycznie każdy bardziej zaawansowany edytor tekstu np. MS Word i Open Office

17 Style i znaczniki

18 Formularze Formularz w HTML stwarza użytkownikowi (klientowi) możliwość wprowadzania informacji do systemu i przekazywania ich dalej Formularz uruchamia akcję zapisaną jako argument parametru „action”

19

20 Akcje formularza Akcje uruchamiane przez formularz są obsługiwane przez przeglądarkę Jedną z możliwych akcji jest wysłanie wiadomości pocztowej

21

22

23 Obsługa programowa akcji
Użytkownik może sam definiować akcje Do definiowania akcji wykonywanych przez przeglądarkę klienta służyć mogą skrypty wykonywane po stronie klienta (np.: JavaScript lub Visual Basic - VBScript) Mogą być one wykonywane przed wysłaniem strony ale nie potrafią zapamiętywać danych

24 JavaScript

25

26 Akcje po stronie serwera
Przetwarzanie danych przesłanych przez klienta jest możliwe dzięki skryptom wykonywanym po stronie serwera (np. PHP i CGI) Argumentem action znacznika form jest wtedy adres dokumentu zawierającego odpowiedni skrypt Argument method określa sposób przesyłania danych

27 Przykład Przeglądarka WWW żąda dokumentu: dodawacz.html

28

29

30

31

32 po naciśnięciu przycisku „Dodaj” otwierany jest dokument „Dodaj.php”

33 Akcja po stronie serwera
Serwer WWW rozpoznaje rozszerzenie (.php) i kieruje dokument do parsera PHP Parser interpretuje kod poczynając od symbolu <? i kończąc na znakach ?>

34

35 Akcja po stronie serwera
Parser wykonuje kod, a uzyskane wyniki umieszcza w pliku w miejscu uprzednio zajmowanym przez polecenia print lub echo

36

37 Powrót do klienta Nowy plik jest przesyłany do serwera WWW
Serwer przesyła plik do przeglądarki Przeglądarka interpretuje kod HTML i wyświetla wyniki

38

39 Formularze - pole opcji

40 Formularze - pole opcji

41 Skrypt PHP i wynik jego działania

42 Widok z przeglądarki

43

44 Formularze – pole wyboru

45 Formularze – pole wyboru

46 Skrypt PHP i wynik jego działania

47 Widok z przeglądarki

48

49 Formularze – lista rozwijalna

50 Formularze – lista rozwijalna

51 Skrypt PHP i wynik jego działania

52 Widok z przeglądarki

53

54 PHP i baza danych

55 Efekt działania skryptu

56 Pobieranie danych z bazy

57 Efekt działania skryptu

58 Internetowy system sprzedaży
Zamówienia składane są poprzez stronę WWW Przedmiotem sprzedaży są rury stalowe i złączki do rur System umożliwia przyjmowanie i edycję zamówień Efektem działania systemu są zestawienia ilości zamówionych produktów

59 Diagram ERD (baza danych Sprzedaż)

60 Tworzenie tabeli JednostkiMiary
Create table sprzedaz.jednostkimiary ( IdJednostki Int(11) NOT NULL AUTO_INCREMENT, JednostkaMiary Char(20), UNIQUE (JednostkaMiary), Primary Key (IdJednostki)) ENGINE = MyISAM ROW_FORMAT = Fixed;

61

62 Tworzenie tabeli Klient
Create table sprzedaz.Klient ( IdKlienta Int(11) NOT NULL AUTO_INCREMENT, NazwaKlienta Char(50), Adres Char(50), Primary Key (IdKlienta)) ENGINE = MyISAM ROW_FORMAT = Fixed;

63 Tworzenie tabeli Towary
Create table sprzedaz.Towary ( IdTowaru Int(11) NOT NULL AUTO_INCREMENT, NazwaTowaru Char(50), Primary Key (IdTowaru)) ENGINE = MyISAM ROW_FORMAT = Fixed;

64 Tworzenie tabeli Zamowienie
Create table sprzedaz.Zamowienie ( IdKlienta Int NOT NULL, IdZamowienia Int(11) NOT NULL AUTO_INCREMENT, DataZamowienia Date, NrZamowienia Char(20), Primary Key (IdZamowienia)) ENGINE = MyISAM ROW_FORMAT = Fixed;

65 Tworzenie tabeli Specyfikacja
Create table sprzedaz.Specyfikacja ( IdTowaru Int NOT NULL, IdJednostki Int NOT NULL, IdZamowienia Int NOT NULL, Ilosc Float, Primary Key (IdTowaru,IdJednostki,IdZamowienia)) ENGINE = MyISAM ROW_FORMAT = Fixed;

66 Ustawianie więzów integralności
Alter table sprzedaz.specyfikacja add Foreign Key (IdJednostki) references sprzedaz.jednostkimiary (IdJednostki) on delete restrict on update restrict; Alter table sprzedaz.zamowienie add Foreign Key (IdKlienta) references sprzedaz.klient (IdKlienta) on delete restrict on update restrict; Alter table sprzedaz.specyfikacja add Foreign Key (IdTowaru) references sprzedaz.towary (IdTowaru) on delete restrict on update restrict; Alter table sprzedaz.specyfikacja add Foreign Key (IdZamowienia) references sprzedaz.zamowienie (IdZamowienia) on delete restrict on update restrict;

67 Strona startowa Do utworzenia strony sterującej systemem wystarczy kod HTML Menu tworzymy wykorzystując znacznik listy <ul> Odpowiednie moduły uruchamiane są odnośnikiem do dokumentu <li><a href="NoweZamowienie.php">Nowe zamówienie</a></li>

68

69

70 Dodawanie klienta Proste dodawanie rekordu do tabeli wymaga użycia strony utworzonej w HTML Formularz utworzony kodem <FORM METHOD="post" ACTION="dodajklienta.php"> pozwala pobrać dane i przekazać je w bloku POST do dokumentu dodajklienta.php

71

72

73 Dodawanie klienta Dokument dodajklienta.php jest interpretowany przez parser PHP Część kodowa dokumentu wykonuje połączenie z bazą danych i realizuje polecenie SQL Dane przekazywane są ze strony dodajklienta.html jako zmienne PHP (tabela $_PHP[nazwa_pola])

74 sprawdzamy czy wprowadzono nazwę klienta
INSERT INTO klient (NazwaKlienta, Adres) VALUES ('Fabryka wózków dziecięcych' , 'Krzeszowice ul, Krakowska 5')

75 Dodawanie klienta W tym samym dokumencie umieszczono kod HTML
Kod HTML wyświetla wprowadzone dane i przekierowuje użytkownika do strony startowej lub strony dodawania klienta

76

77

78 Kontrola błędów W tabeli JednostkiMiary zdefiniowano pole JednostkaMiary jako UNIQUE Próba wprowadzenie jednostki miary, która jest już w tabeli spowoduje błąd Błąd ten identyfikowany jest funkcją mysql_error

79

80

81 jeśli nie wystąpił błąd
czy wystąpił błąd? jeśli nie wystąpił błąd

82

83 Wprowadzanie zamówienia
Plik NoweZamowienie.php składa się z części kodowej oznaczonej znacznikami <? i ?> oraz kodu HTML Pierwsza część kodu PHP pobiera listę klientów i umieszcza ją w tabeli blok_opcji_ZA za pośrednictwem tabeli wiersz

84 odpowiednik use sprzedaz
połączenie z bazą danych na komputerze macierzystym dla użytkownika root bez hasła odpowiednik use sprzedaz

85 Pobieranie listy klientów
Tak wyglądają kolejne realizacje wiersza $wiersz 5 Fabryka Mebli 4 Fabryka Rowerów 7 Fabryka wózków dziecięcych 1 Firma 3 Firma Kruk 6 Hurtownia Materiałów Budowlanych 2 Sklep Ogólny

86 Przygotowanie formularza
Kod HTML powodujący wyświetlenie formularza do wprowadzania danych o nagłówku zamówienia umieszczany jest w tablicowej zmiennej tekstowej blok Do formularza włączana jest lista klientów ze zmiennej tekstowej blok_opcji_ZA

87 od tego momentu wszelkie zmienne definiowane przez name= będą widoczne w DodajSpecyfikacje.php jako zmienne PHP ($POST_...)

88 Wyświetlenie formularza
Druga część pliku NoweZamówienie.php zawiera kod HTML i wstawkę PHP powodującą wyświetlenie formularza

89

90

91 Dopisywanie specyfikacji
Polecenie submit uruchamia akcję wyzwalającą dokument DodajSpecyfikacje.php Pierwsza część kodu PHP powoduje zapisanie nowego zamówienia do bazy

92 pobranie identyfikatora dopisanego rekordu
INSERT INTO zamowienie (IdKlienta, DataZamowienia, NrZamowienia) VALUES ('7' , ' ', '2005/876') pobranie identyfikatora dopisanego rekordu

93 Przygotowanie formularza
Następnie do tabeli blok_opcji_TO pobierana jest lista towarów i lista jednostek miary (tabela blok_opcji_JM)

94

95 Definicja formularza W zmiennej l zapamiętujemy liczbę pozycji
Formularz zostaje związany z plikiem ZatwierdzSpecyfikacje.php liczba pozycji oraz indeks wprowadzanego zamówienia zapisywane są do ukrytych zmiennych zbioru POST (Indeks i Lp)

96

97 Definicja formularza W pętli przygotowywane są kolejne wiersze formularza Na zakończenie wpisywane są instrukcje zamykające formularz

98

99 Wyświetlanie formularza
Kod HTML i wstawka PHP powoduję wyświetlenie formularza

100

101

102 Dopisanie specyfikacji
Polecenie submit przekazuje sterowanie do ZatwierdzSpecyfikacje.php W pętli dopisywane są kolejne rekordy do tablicy specyfikacja

103 INSERT INTO specyfikacja (IdZamowienia, IdTowaru, Ilosc, IdJednostki) VALUES ('70' , '2', '150','1')
....

104 Zakończenie dopisywania
Kod HTML dołączony do pliku ZatwierdzSpecyfikacje.php potwierdza zapisanie danych i umożliwia przejście do strony głównej lub do kolejnego zamówienia

105

106

107 Zestawianie zamówionych towarów
Plik ZestawienieTowarow.html zawiera kod HTML otwierający formularz do określenia zakreus czasowego zestwienia

108

109

110 Zestawianie zamówionych towarów
Plik Zestawienie.php zawiera kod PHP realizujący zapytanie oparte na tabelach: zamowienie, specyfikacja, JednostkiMiary i towary

111

112 Tak wygląda zapytanie SELECT zamowienie.datazamowienia, Towary.NazwaTowaru, SUM( Specyfikacja.Ilosc ) AS Suma, JednostkiMiary.JednostkaMiary FROM zamowienie INNER JOIN ( Towary INNER JOIN (JednostkiMiary INNER JOIN Specyfikacja ON JednostkiMiary.IdJednostki = Specyfikacja.IdJednostki ) ON Towary.IdTowaru = Specyfikacja.IdTowaru ) ON zamowienie.IdZamowienia = Specyfikacja.IdZamowienia GROUP BY Towary.NazwaTowaru, JednostkiMiary.JednostkaMiary HAVING zamowienie.dataZamowienia >= AND dayofyear(zamowienie.dataZamowienia)<=dayofyear(' ') AND year(zamowienie.dataZamowienia)<=year(' ') ORDER BY Towary.NazwaTowaru

113 Przygotowanie listy W pętli wykonywanej dopóty dopóki zwracane są niepuste wiersze ze złączenia przygotowywane są kolejne linie zestawienia Kolejne linie umieszczane są w tabeli formularza

114

115 Wyświetlanie zestawienia
Dołączony do pliku Zestawienie.php kod HTML wraz ze wstawkami PHP powoduje wyświetlenie formularza i umożliwia powrót do strony głównej

116

117

118 Edycja specyfikacji zamówienia
Plik EdycjaZamowienia.php przygotowuje formularz do wyboru zamówienia Lista zamówień przenoszona jest do tablicy blok_opcji_ZA

119

120 Wyświetlanie listy zamówień
Dołączony do pliku EdycjaZamowienia.php kod HTML oraz wstawki PHP powodują wyświetlenie listy do wyboru zamówienia

121

122

123 Przygotowanie do edycji specyfikacji
W pliku Edycja.php przygotowuje się listy opcji do wyświetlania towarów i jednostek miar Pobrane z odpowiednich tablic wiersze przechowywane są w tablicach IdT[], TW[], IdJ[] i JK[]

124 liczba zwróconych wierszy

125 Przygotowanie formularza
Dane opisujące specyfikację pobierane są z tabel Specyfikacja, Towary i JednostkiMiary Identyfikator zamówienia i liczba pozycji w specyfikacji są pamiętane jako zmienne ukryte typu POST (Indeks i Lp)

126 SELECT Specyfikacja. IdZamowienia, Towary. IdTowaru, JednostkiMiary
SELECT Specyfikacja.IdZamowienia, Towary.IdTowaru, JednostkiMiary.IdJednostki, Towary.NazwaTowaru, Specyfikacja.Ilosc, JednostkiMiary.JednostkaMiary FROM Towary INNER JOIN (JednostkiMiary INNER JOIN Specyfikacja ON JednostkiMiary.IdJednostki = Specyfikacja.IdJednostki) ON Towary.IdTowaru = Specyfikacja.IdTowaru WHERE Specyfikacja.IdZamowienia = 70

127 Przygotowanie formularza
W pętli pobierane są kolejne wiersze specyfikacji Dla każdego wiersza ustalana jest lista opcji do wyboru towaru i jednostki miary Lista ta ustawiana jest na pozycji odpowiadającej wcześniejszemu wyborowi Zmienna cb będzie rejestrować żądanie usunięcia rekordu

128 indeks wiersza w specyfikacji
cb0 cb1 cb2 cb3 indeks wiersza w liście towarów indeks wiersza w liście jedn. miary

129 Przygotowanie formularza
Przygotowane są listy wyboru towarów i jednostek miar oraz zmienna do wprowadzania ilości przyjmująca dotychczasową wartość Dołączane jest pole kontrolne (checkbox) do rejestrowania żądań usunięcia rekordu

130

131 Wyświetlanie formularza
Dołączony do pliku Edycja.php kod HTML oraz wstawki PHP powodują wyświetlenie formularza edycji specyfikacji

132

133

134 Zatwierdzanie poprawek
Plik ZatwierdzEdycje.php zawiera kod służący do usunięcia pierwotnych zapisów oraz wprowadzenia nowych Zapisywane są tylko te wiersze, dla których zmienna tworzona przez pole kontrolne nie jest ustawiona (jej wartość jest różna od on)

135 DELETE FROM specyfikacja WHERE IdZamowienia='70'
INSERT INTO specyfikacja (IdZamowienia, IdTowaru, Ilosc, IdJednostki) VALUES ('70' , '1', '250','1') INSERT INTO specyfikacja

136 Wyświetlanie potwierdzenia
Dołączony do pliku ZatwierdzEdycje.php kod HTML oraz wstawki PHP powodują wyświetlenie potwierdzenia zmian i umożliwia przejście do kolejnego zamówienia lub do strony głównej

137

138

139 Przeglądanie zamówienia
Poprawione zamówienie można przeglądać dzięki opcji Przeglądanie zamówień

140

141 Funkcje MySQL w PHP mysql_affected_rows -- Zwraca ilość wierszy przetworzonych w poprzedniej operacji MySQL mysql_change_user --  Zmienia użytkownika zalogowanego w aktywnym połączeniu mysql_close -- Zamyka połączenie z serwerem MySQL mysql_connect -- Otwiera połączenie z serwerem MySQL mysql_create_db -- Tworzy bazę MySQL mysql_data_seek -- Przesuwa wewnętrzny wskaźnik wyniku mysql_db_name -- Pobiera dane wynikowe mysql_db_query -- Wysyła zapytanie do bazy MySQL mysql_drop_db -- Usuwa bazę MySQL mysql_errno --  Zwraca numer komunikatu błędu z ostatniej operacji MySQL

142 Funkcje MySQL w PHP mysql_error --  Zwraca tekst komunikatu błędu z ostatniej operacji MySQL mysql_escape_string --  Dodaje znaki unikowe na użytek mysql_query mysql_fetch_array --  Zapisuje wiersz wyniku w tablicy asocjacyjnej, numerycznej lub w obu mysql_fetch_assoc --  Zapisuje wiersz wyniku w tablicy asocjacyjnej mysql_fetch_field --  Pobiera z wyniku informacje o kolumnie i zwraca jako obiekt mysql_fetch_lengths --  Pobiera długość każdego pola w wierszu wyniku


Pobierz ppt "Bazy danych i strony WWW"

Podobne prezentacje


Reklamy Google