Zaawansowane bazy danych i hurtownie danych studia zaoczne II stopnia, sem. I



Podobne dokumenty
Formularze w PHP dla początkujących

ZAAWANSOWANE BAZY DANYCH I HURTOWNIE DANYCH MySQL, PHP

Formularze HTML. dr Radosław Matusik. radmat

SQL 4 Structured Query Lenguage

Tworzenie stron internetowych z wykorzystaniem HTM5, JavaScript, CSS3 i jquery. Łukasz Bartczuk

Systemy internetowe. Wykład 3 PHP. West Pomeranian University of Technology, Szczecin; Faculty of Computer Science

SSK - Techniki Internetowe

Bazy Danych i Usługi Sieciowe

Laboratorium 1 Wprowadzenie do PHP

FORMULARZE. G. Przęczek

FORMULARZE Formularz ma formę ankiety, którą można wypełnić na stronie. Taki formularz może być np. przesłany pocztą elektroniczną .

Systemy internetowe Wykład 3 PHP

Wprowadzenie do Internetu Zajęcia 5

Dokument hipertekstowy

Na początku utworzymy formularz w czystym języku HTML i przetestujemy go za pomocą przeglądarki WWW.

Przykład programu w PHP. Wykład10.PHP ciągdalszy,str.1

Obiektowe bazy danych

Wykład 03 JavaScript. Michał Drabik

Zajęcia 13 wykorzystanie MySQL w PHP cz. 2

Zaawansowane bazy danych i hurtownie danych semestr I

Aplikacje WWW - laboratorium

Tworzenie witryn internetowych PHP/Java. (mgr inż. Marek Downar)

Format HTML. Wybrane działy Informatyki Stosowanej. Definicja i przeznaczenie Struktura dokumentu Znaczniki Formularze i komponenty

Składowane procedury i funkcje

Baza danych do przechowywania użytkowników

E.14 Bazy Danych cz. 18 SQL Funkcje, procedury składowane i wyzwalacze

Aplikacje internetowe - laboratorium

Zakres tematyczny dotyczący kursu PHP i MySQL - Podstawy pracy z dynamicznymi stronami internetowymi

Bazy danych 11. SQL Procedury składowane, kursory i wyzwalacze

Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Informatyki i Elektroniki

DECLARE VARIABLE zmienna1 typ danych; BEGIN

Formularze. 1. Formularz HTML

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8

Programowanie w Sieci Internet Blok 2 - PHP. Kraków, 09 listopada 2012 mgr Piotr Rytko Wydział Matematyki i Informatyki

Umieszczanie kodu. kod skryptu

Referat z przedmiotu Technologie Internetowe SPIS TREŚCI

Wykład 5: PHP: praca z bazą danych MySQL

Dane - pobieranie, przekazywanie i przechowywanie. dr Beata Kuźmińska-Sołśnia

Programy CGI dla baz danych

Ćwiczenia 2 IBM DB2 Data Studio

Internetowe bazy danych

Zajęcia 4 - Wprowadzenie do Javascript

Zaawansowane bazy danych i hurtownie danych

Internetowe bazy danych

Przykład 3 Zdefiniuj w bazie danych hurtownia_nazwisko przykładową funkcję użytkownika fn_rok;

Anna Fiedorowicz Bazy danych 2

JavaScript - wykład 4. Zdarzenia i formularze. Obsługa zdarzeń. Zdarzenia. Mysz. Logiczne. Klawiatura. Beata Pańczyk

SIECI KOMPUTEROWE I BAZY DANYCH

Bazy danych i strony WWW

BAZA DANYCH SIECI HOTELI

Wykład 5 funkcje i procedury pamiętane widoki (perspektywy) wyzwalacze

Języki skryptowe - PHP. Podstawy PHP. Paweł Kasprowski. pawel@kasprowski.pl. vl07

Bazy danych postgresql programowanie i implementacja

Bloki anonimowe w PL/SQL

Podstawy programowania (PHP/Java)

LABORATORIUM 2 WSTĘP DO SIECI TELEINFORMATYCZNYCH TABELE I FORMULARZE

Kontrola sesji w PHP HTTP jest protokołem bezstanowym (ang. stateless) nie utrzymuje stanu między dwoma transakcjami. Kontrola sesji służy do

Procedury wyzwalane. (c) Instytut Informatyki Politechniki Poznańskiej 1

Plan bazy: Kod zakładający bazę danych: DROP TABLE noclegi CASCADE; CREATE TABLE noclegi( id_noclegu SERIAL NOT NULL,

Zajęcia 10 obsługa formularzy w PHP

Hurtownia Świętego Mikołaja projekt bazy danych

Języki skryptowe - PHP. PHP i bazy danych. Paweł Kasprowski. pawel@kasprowski.pl. vl07

Materiały. Technologie baz danych. Plan wykładu Kursory. Wykład 5: Kursory jawne. Podprogramy. Kursory jawne. Kursory niejawne

PODSTAWY BAZ DANYCH 13. PL/SQL

Trigger jest obiektem związanym z tablicą, który aktywuje się gdy do tablicy następuje odpowiednie zapytanie.

Spis treści. Wstęp 5 Rozdział 1. Praca z AJAX-em 9. Rozdział 2. Współpraca ze skryptami PHP 55. Rozdział 3. Obsługa formularzy 81

Scenariusz lekcji. Scenariusz lekcji 1 TEMAT LEKCJI: Tablice w PHP 2 CELE LEKCJI: 2.1 Wiadomości: 2.2 Umiejętności: 3 METODY NAUCZANIA

Język PHP. Studium Podyplomowe Sieci Komputerowe i Aplikacje Internetowe. v1.7, 2007/11/23

INTERNETOWE BAZY DANYCH materiały pomocnicze - wykład X

Przedmiot: Programowanie usług internetowych - Delphi Przygotował: K. Strzałkowski Rok V. Semestr IX. Wydział ZiMK

Administracja i programowanie pod Microsoft SQL Server 2000

Wyzwalacze (triggery) Przykład

ASP.NET MVC. Podstawy. Zaawansowane programowanie internetowe Instrukcja nr 3

Cheatsheet PL/SQL Andrzej Klusiewicz 1/9

Kowalski Marcin Wrocław, dn Jaśkiewicz Kamil Bazy Danych 1 Podstawy Projekt Temat: Baza danych do zarządzania projektami

Bazy Danych i Usługi Sieciowe

Projekt strony internetowej firmy organizującej przyjęcia

Projekt-bazy danych Poczta

Bazy danych 8. Procedury składowane i kursory. P. F. Góra

PHP: bloki kodu, tablice, obiekty i formularze

Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik

Cele. Definiowanie wyzwalaczy

Szablon główny (plik guestbook.php) będzie miał postać:

Języki programowania wysokiego poziomu. PHP cz.3. Formularze

Zaawansowane aplikacje internetowe

Podstawy JavaScript ćwiczenia

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr Prosta obsługa Bazy w PHP

Ćwiczenie 7 - Formularze

Dostęp do baz danych z serwisu www - PHP. Wydział Fizyki i Informatyki Stosowanej Joanna Paszkowska, 4 rok FK

Procedury i funkcje składowane

Quiz Aplikacja internetowa

SQL :: Data Definition Language

PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych:

Podstawy języka PHP. Umieszczanie skryptu na stronie

Administracja i programowanie pod Microsoft SQL Server 2000

Systemy internetowe. Wykład 4 mysql. West Pomeranian University of Technology, Szczecin; Faculty of Computer Science

PHP5. Praktyczny kurs

BAZY DANYCH. Obsługa bazy z poziomu języka PHP. opracowanie: Michał Lech

Transkrypt:

Wydział Informatyki Politechnika Białostocka Zaawansowane bazy danych i hurtownie danych MySQL studia zaoczne II stopnia, sem. I Plan wykładu 1. MySQL: funkcje, procedury, wyzwalacze 2. HTML : tworzenie formularzy 3. PHP: przetwarzanie formularzy WYKŁAD 4: Agnieszka Oniśko, Małgorzata Krętowska Tworzenie procedury Tworzenie funkcji CREATE [DEFINER = { użytkownik CURRENT_USER ] PROCEDURE nazwa ([parametery[,...]]) [charakterystyka...] ciało procedury parametry: [ IN OUT INOUT ] charakterystyka: LANGUAGE SQL [NOT] DETERMINISTIC { CONTAINS SQL NO SQL READS SQL DATA MODIFIES SQL DATA SQL SECURITY { DEFINER INVOKER COMMENT CREATE [DEFINER = { użytkownik CURRENT_USER ] FUNCTION nazwa ([parametery[,...]]) RETURNS typ_danych [charakterystyka...] ciało funkcji parametry: [ IN OUT INOUT ] charakterystyka: LANGUAGE SQL [NOT] DETERMINISTIC { CONTAINS SQL NO SQL READS SQL DATA MODIFIES SQL DATA SQL SECURITY { DEFINER INVOKER COMMENT

Charakterystyka LANGUAGE SQL w jakim języku jest pisany kod (serwer ignoruje tą charakterystykę, tylko SQL jest dopuszczalny) COMMENT opis procedury lub funkcji DETERMINISTIC jeżeli, dla tych samych danych wejściowych generowany jest jednakowy wynik (np. nie zawiera funkcji now(), rand()) CONTAINS SQL gdy procedura (funkcja) nie czyta ani nie zapisuje danych NO SQL nie zawiera elementów SQL READS SQL DATA zawiera polecenia czytające dane (np. SELECT) MODIFIES SQL DATA zawiera polecenie zapisujące dane (np. INSERT, DELETE) SQL SECURITY { DEFINER INVOKER jakie uprawnienia są dostępne podczas uruchomienia procedury osoby, która ją pisała czy tej, która uruchamia. Procedura: Przykład CREATE PROCEDURE prosta_procedura (OUT parametr INT) BEGIN SELECT COUNT(*) INTO parametr FROM Kategoria; END; CALL prosta_procedura(@a); Funkcja: Przykład Wyzwalacze CREATE FUNCTION hello (s CHAR(20)) RETURNS CHAR(50) DETERMINISTIC RETURN CONCAT('Hello, ',s,'!'); SELECT hello('world'); CREATE [DEFINER = { użytkownik CURRENT_USER ] TRIGGER nazwa BEFORE AFTER INSERT UPDATE DELETE ON tabela FOR EACH ROW ciało wyzwalacza

Wyzwalacze New.nazwa_kolumny alias new. dostępny jest przy wyzwalaczu związanym z insert lub update. Dostęp do nowego wiersza Old.nazwa_kolumny dostępny przy update i delete. Dostęp do istniejącego wiersza. Wyzwalacze: Przykład I CREATE TRIGGER ustaw_date BEFORE INSERT ON Zamowienia FOR EACH ROW BEGIN SET new.data_zamowienie = now(); END; Formularze HTML Praca z formularzami sieciowymi składa się z dwóch etapów: 1. Utworzenie formularza HTML 2. Przetworzenie informacji podanych w formularzu Prosty formularz HTML <html><title><prosty formularz></title> <form> Podaj imię? <input type="text" name="myname"> <input type="submit" value="wyślij">

Metody żądania HTTP Przykład wykorzystania metody POST Metoda GET Metoda domyślna Głównie pobieranie statycznych dokumentów HTML, obrazów lub wyników zapytania do bazy danych Wysyłanie danych do serwera poprzez dołączenie ich na końcu adresu URL Ograniczona ilość przesyłanej informacji Metoda POST Wywoływana przez dodanie atrybutu METHOD do znacznika <form> Używana wówczas, gdy przetwarzanie danych z formularza ma pewne efekty uboczne np. modyfikację bazy, uaktualnienie koszyka zakupów Dane są umieszczane w nagłówku głównej wiadomości HTTP Brak ograniczeń dotyczących wielkości przesyłanej informacji <html><title><prosty formularz></title> <form METHOD="POST"> Podaj swoje imię? <input type="text" name="myname"> <input type="submit" value="wyślij"> Formularz HTML kolejne kroki Początek. Znacznik HTM <form> Akcja. Atrybut action znacznika <form> jest adresem URL skryptu PHP Metoda. Podanie metody HTTP odpowiedzialnej za przetworzenie danych wejściowych (domyślnie GET) Tworzenie. Utworzenie formularza (przyciski, pola, itp.) Wysłanie. Utworzenie przycisku wysyłającego formularz sieciowy (uruchomienie programu z atrybutu action) Koniec. Zakończenie formularza znacznikiem Przykład <html> <head> <title>pierwszy formularz HTML</title> </head> <body bgcolor=yellow> <hr /> <form action="listing10.3.php" method="get"> <b>podaj swoje imię: </b> <input type="text" name="namestring" size="50"> <p/><b>napisz kilka słów o sobie: </b> <textarea name="comments" rows="5" cols="50">urodziłem się... </textarea>

Przykład cd. <p/><b>wybierz preferowany posiłek: </b> <input type="radio" name="choice" value="burger" />Hamburger <input type="radio" name="choice" value="fish" />Ryby <input type="radio" name="choice" value="steak" />Stek <input type="radio" name="choice" value="yogurt" />Jogurt <p /> <b>gdzie chciałbyś pracować?</b> <input type="checkbox" name="place1" value="la" />Los Angeles <input type="checkbox" name="place2" value="sj" />San Jose <input type="checkbox" name="place3" value="sf" Checked>San Francisco<p/> Przykład cd. <b>gdzie chciałbyś spędzić wakacje? </b> <select name="location"> <option selected value="hawaii" /> Hawaje <option value="bali" />Bali <option value="maine" />Maine <option value="paris" />Paryż </select> <p/> <input type="submit" value="wyślij"> </p> <input type="reset" value="wyczyść"> <hr /> Przykład cd. Przycisk Wyślij powoduje utworzenie następującego ciągu tekstowego: http://dbserver.wi.pb.edu.pl/~aonisko/listing10.3.php?namestring= Jan+Kowalski&comments=Urodzilem+sie+w+Bialymstoku.&cho ice=burger&place1=la&location=paris PHP i formularze Dane przekazane z formularza do skryptu PHP są w nim dostępne poprzez tablice superglobalne: $_GET - zmienne przekazywane poprzez metodę HTTP GET $_POST zmienne przekazywane poprzez metodę HTTP POST $_REQUEST zmienne dostarczane do pliku poprzez metodę GET, POST oraz COOKIE (niezbyt bezpieczna opcja) $_SERVER[ REQUEST_METHOD ] pozwala sprawdzić, jaka metoda przesyłania danych została wykorzystana If ($_SERVER[ REQUEST_METHOD ] == GET ) {ciąg poleceń If ($_SERVER[ REQUEST_METHOD ] == POST ) {ciąg poleceń

Przykład plik HTML Przykład cd tablica $_GET <html><head><title>formularz HTML Form</title></head> <body bgcolor="#9999cc"> <font face="verdana" size="+1"> <form action="mk_plik2.php" method="get"> Proszę podać imię: <input type="text" size=50 name="your_name" /> Proszę podać numer telefonu: <input type="text" size=50 name="your_phone" /> Proszę podać adres e-mail: <input type="text" size=50 name="your_email_addr" /> <input type="submit" value="wyslij" /> <input type="reset" value="wyczysc" /> <hr /> <html><head><title>przetwarzanie formularza</title> </head> // Używane są tablice superglobalne. echo 'Nazwisko: '.$_GET['your_name'].''; echo 'Numer telefonu: '.$_GET['your_phone'].''; echo 'email: '.$_GET['your_email_addr'].''; Przykład cd. tablica $_REQUEST Przykład cd funkcja extract() <html><head><title>przetwarzanie formularza</title> </head> <h3>zawartosc tablicy $_REQUEST</h3> foreach($_request as $klucz=>$wartosc) { echo "$klucz => $wartosc "; <html><head><title>przetwarzanie formularza</title> </head> <h3>działanie funkcji extract()</h3> extract($_request); echo 'Nazwisko: '.$your_name.''; echo 'Numer telefonu: '.$your_phone.''; echo 'email: '.$your_email_addr.'';

Przykład cd. tablica $_POST Dokument HTML (zmiany) <form action="mk_plik2.php" method="post"> <input type="submit" name="send" value="wyslij" /> Skrypt PHP <html><head><title>przetwarzanie formularza</title></head> <h3>tablica $_POST()</h3> if(!empty($_get)){ //obsługa tylko metody POST die('nieprawidlowy parametr. Prosze sprobowac ponownie. '); if($_post['send']=='wyslij') { // spr czy nacisnieto przycisk Wyslij echo 'Nazwisko: '.$_POST['your_name'].''; echo 'Numer telefonu: '.$_POST['your_phone'].''; echo 'email: '.$_POST['your_email_addr'].''; Lista wyboru Formularz HTML <html><head><title>lista wyboru</title></head> <body bgcolor="aqua"> <form action="mk_plik2.php" method="post"> <b>wybierz miejsce spędzania wakacji:</b> <select name="location[]" multiple="multiple"> <option>białystok <option>kraków <option>zakopane <option>sopot </select> <input type="submit" value="wyslij" /> <input type="reset" value="wyczysc" /> Przetwarzanie listy wyboru <html><head><title>przetwarzanie listy wyboru</title></head> <body bgcolor="8cccca"> <fieldset><legend><b>wybrane miejsca na spędzanie wakacji</b></legend> if (is_array($_post['location'])){ print '<ul>'; foreach ($_POST['location'] as $key=>$value){ print "<li>$key=>$value</li>"; print '</ul>'; </fieldset> Checkbox <html><head><title>lista wyboru</title></head> <body bgcolor="aqua"> <form action="mk_plik2.php" method="post"> <b>wybierz miasto:</b> <input type="checkbox" name="place[]" value="krakow" />Kraków <input type="checkbox" name="place[]" value="warszawa" />Warszawa <input type="checkbox" name="place[]" value="bialystok" />Białystok <input type="checkbox" name="place[]" value="zakopane" />Zakopane <input type="checkbox" name="place[]" value="poznan" Checked />Poznań <input type="submit" value="wyslij" /> <input type="reset" value="wyczysc" />

Checkbox - przetwarzanie <html><head><title>checkbox - przetwarzanie</title></head> <body bgcolor="8cccca"> </fieldset> <fieldset><legend><b>wybrane miasta</b></legend> extract($_post); if (is_array($place)){ print '<ul>'; foreach ($place as $key=>$value){ print "<li>$key=>$value</li>"; print '</ul>'; </fieldset> Przetwarzanie formularzy w dokumencie HTML bool isset(zmienna, ) sprawdza, czy zmiennej jest przypisana wartość i czy nie jest NULL. $var = ''; if (isset($var)) { //TRUE echo "Napis sie pojawi. Zmienna ma przypisaną wartość"; $var1 = NULL; if(isset($var1)){ // FALSE echo "Napis sie nie pojawi. Zmienna ma wartość NULL"; $_SERVER[ PHP_SELF ] ścieżka dostępu do aktualnie wykonywanego skryptu Przykład if (isset($_post['submit'])){ // Czy formularz został wysłany? $your_name = $_POST['your_name']; $your_phone = $_POST['your_phone']; print "<b>twoje imię to $your_name"; print "Twój numer telefonu to $your_phone"; print 'Scieżka dostępu do tego pliku to: '. $_SERVER['PHP_SELF'].""; else { <html><head><title>pierwszy formularz HTML</title></head> <body bgcolor="lightblue"><font size="+1"> <form action=" echo $_SERVER['PHP_SELF']; method="post"> <p /> Proszę podać imię: <input type="text" size=50 name="your_name" /> <p /> Proszę podać numer telefonu: <input type="text" size=50 name="your_phone" /> <p /> <input type="submit" name="submit" value="wyslij teraz" /> <input type=reset value="wyczysc"> <hr />