1 / 86

Bazy danych i strony WWW

Bazy danych i strony WWW. Przykład aplikacji. 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.

olisa
Download Presentation

Bazy danych i strony WWW

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Bazy danych i strony WWW Przykład aplikacji

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

  3. Diagram ERD (baza danych Sprzedaż)

  4. 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;

  5. 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;

  6. 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;

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

  8. 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;

  9. 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;

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

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

  12. 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])

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

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

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

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

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

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

  19. Pobieranie listy klientów 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 Tak wyglądają kolejne realizacje wiersza $wiersz

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

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

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

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

  24. INSERT INTO zamowienie (IdKlienta, DataZamowienia, NrZamowienia) VALUES ('7' , '2005-04-02', '2005/876') pobranie identyfikatora dopisanego rekordu

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

  26. 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)

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

  28. Wyświetlanie formularza • Kod HTML i wstawka PHP powoduję wyświetlenie formularza

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

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

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

More Related