Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
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”
20
Akcje formularza Akcje uruchamiane przez formularz są obsługiwane przez przeglądarkę Jedną z możliwych akcji jest wysłanie wiadomości pocztowej
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
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
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 ?>
35
Akcja po stronie serwera
Parser wykonuje kod, a uzyskane wyniki umieszcza w pliku w miejscu uprzednio zajmowanym przez polecenia print lub echo
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
39
Formularze - pole opcji
40
Formularze - pole opcji
41
Skrypt PHP i wynik jego działania
42
Widok z przeglądarki
44
Formularze – pole wyboru
45
Formularze – pole wyboru
46
Skrypt PHP i wynik jego działania
47
Widok z przeglądarki
49
Formularze – lista rozwijalna
50
Formularze – lista rozwijalna
51
Skrypt PHP i wynik jego działania
52
Widok z przeglądarki
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;
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>
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
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
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
81
jeśli nie wystąpił błąd
czy wystąpił błąd? jeśli nie wystąpił błąd
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
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)
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)
97
Definicja formularza W pętli przygotowywane są kolejne wiersze formularza Na zakończenie wpisywane są instrukcje zamykające formularz
99
Wyświetlanie formularza
Kod HTML i wstawka PHP powoduję wyświetlenie formularza
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
107
Zestawianie zamówionych towarów
Plik ZestawienieTowarow.html zawiera kod HTML otwierający formularz do określenia zakreus czasowego zestwienia
110
Zestawianie zamówionych towarów
Plik Zestawienie.php zawiera kod PHP realizujący zapytanie oparte na tabelach: zamowienie, specyfikacja, JednostkiMiary i towary
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
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
118
Edycja specyfikacji zamówienia
Plik EdycjaZamowienia.php przygotowuje formularz do wyboru zamówienia Lista zamówień przenoszona jest do tablicy blok_opcji_ZA
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
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
131
Wyświetlanie formularza
Dołączony do pliku Edycja.php kod HTML oraz wstawki PHP powodują wyświetlenie formularza edycji specyfikacji
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
139
Przeglądanie zamówienia
Poprawione zamówienie można przeglądać dzięki opcji Przeglądanie zamówień
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
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.