HTML alapok 1. A HTML dokumentum egy olyan szövegfájl, amely a
szövegen kívül tartalmaz ún. "HTML-tag"-eket – formázóutasításokat –, valamint más megjelenítendő objektumokra történő hivatkozásokat is. Megjelenítése böngésző programmal lehetséges Kötött szerkezetű – Head – Fejléc: információk a lapról – Body – Dokumentumtörzs: a megjelenő tartalom – A HTML utasítások a szövegben < és > jelek között szerepelnek Formázási lehetőségek: mint egy szövegszerkesztőben – Betűtípus, méret, szín, háttérszín, bekezdés, táblázat… 127/4
Dinamikus weblapok A linkek hasznosak, de statikusak. Dinamikus lesz a weblap, ha adatokat tudunk bevinni, és
nyomógombok segítségével műveleteket indíthatunk el. Az adatok bevitelére, és a nyomógombok megjelenítésére alkalmas a HTML nyelv, de az adatok és a műveletek kezelésére valamilyen programnyelv szükséges! Pl.: PHP
127/22
B IT M A N
HTML űrlap – Be.html Be.htm Bejelentkezés
127/23
www.bitman.hu
B IT M A N
Feldolgozás – be_feldolgozo.php be_feldolgozo.php
127/24
www.bitman.hu
B IT M A N
HTML űrlap – Beviteli elemek www.bitman.hu
text password checkbox radio select submit reset
127/25
B IT M A N
HTML űrlap – Beviteli elemek (2)
127/28
HTML, PHP alapok (gyorstalpaló)
HTML alapok (gyorstalpaló)
PHP alapok (gyorstalpaló)
B IT M A N
A cél: Webes kliensről manipulálni az adatbázist.
127/29
B IT M A N
A megoldás: PHP alkalmazása Kliens-oldal
Szerver-oldal
$connect
HTTP
SQL
HTML <TITLE> PHP
127/30
Piros Kék Zöld
Piros, Kék, Zöld
B IT M A N
A PHP működése
http://helo.php
PHP file
Név
PHP feldolgozó
Jelszó
Web böngésző
HTML
DBMS Adatbázis szerver
Web szerver
127/31
B IT M A N
PHP történet
2015
PHP v 7.0 – PHP Next Generation
2010
PHP v 6.0 – Unicode támogatás (utf8, utf16), de nem adták ki!
2004
PHP v 5.0 – OOP támogatás
2000
PHP v 4.0
1997
PHP Hypertext Preprocessor v 3.0
1996
Personal Home Page Tools (PHP Tools v 2.0)
1995
Personal Home Page Tools (PHP Tools v 1.0)
1994
Personal Home Page/Forms Interpreter (PHP/FI)
127/32
B IT M A N
PHP 1995: Rasmus Lerdorf, Personal Home Page Tools 1997: PHP 3.0, Hypertext Preprocessor
Szerver oldali programozási nyelv, Dinamikus HTML oldalak készítésére, Nyílt forráskódú,
Hordozható: UNIX, Linux, Windows változatok, Apache és IIS alatt egyaránt működik.
megvalósítható az adatbázis-kezelés PHP-ből. Helye: a PHP csomagban a php_oci8xxx.dll Engedélyezése: php.ini fájlban kivenni a ;-t: ; extension=php_oci8_12c.dll A PHP kódok futtatásához szükséges egy webszerver, ami alá telepítve van a PHP. Otthonra:
KatNev nevű tárolt eljárás, mely kiírja a képernyőre egy paraméterként megadott kódú kategória nevét. create or replace procedure KatNev (kk in char, uz out varchar2) as db int; begin select count(*) into db from Kategoria where Kkod = kk; if db = 1 then select nev into uz from Kategoria where Kkod = kk; else uz := 'Nem létezik ez a Kategória kód!'; end if; end;
127/105
B IT M A N
Bolt – KatNev tárolt eljárás www.bitman.hu
www.bitman.hu
127/106
B IT M A N
katnev.php
kategoria kkod nev
katnev.php
127/107
B IT M A N
Bolt – UjKat tárolt eljárás
kategoria kkod nev
UjKat nevű tárolt eljárás, mely létrehoz egy új kategóriát. create or replace procedure UjKat (kk in varchar2, kn in varchar2) as begin insert into Kategoria values (kk, kn); end; www.bitman.hu
127/108
B IT M A N
ujkat.php ujkat.php
127/109
B IT M A N
KatTermAtlagAr fgv.
kategoria kkod nev
termek kategoria
tkod
nev
ar
leiras
KatTermAtlagAr nevű tárolt függvény, mely visszaadja egy adott kategóriájú termékek átlagárát. create or replace function KatTermAtlagAr (knevbe in char) return int is db int; atlag int := 0; begin select count(*) into db from kategoria where nev=knevbe; if db = 0 then atlag := -1; else select avg(ar) into atlag from termek t inner join kategoria k on t.kategoria=k.kkod where k.nev=knevbe; end if; return atlag; end; 127/110
TermKat nevű tárolt függvény, mely visszaadja egy adott nevű termék kategóriáját. create or replace function TermKat (tnevbe in char) return varchar2 is db int; knev varchar2(30); begin select count(*) into db from termek where nev=tnevbe; if db = 0 then knev := 'Nincs '||tnevbe||' nevű termék!'; else select k.nev into knev from termek t inner join kategoria k on t.kategoria=k.kkod where t.nev=tnevbe; end if; return knev; end; 127/114
B IT M A N
Bolt – TermKat tárolt függvény www.bitman.hu
www.bitman.hu
127/115
B
M
select TermKat(′sör′) dual; ITfrom A N
termkat.php termkat.php
127/116
B IT M A N
Bolt – TermKat tárolt függvény www.bitman.hu
www.bitman.hu
127/117
www.bitman.hu
B IT M A N
Bevetel fgv.
termek kategoria
tkod
vasarlas nev
ar
tkod
idopont
darab
Bevetel nevű tárolt függvény, mely visszaadja egy adott nap bevételét. A dátumot a magyar szokásoknak megfelelő yyyy.mm.dd alakban kapja meg a függvény! create or replace function Bevetel (ip in varchar2) return int as bev int:=0; begin select sum(Ar*Darab) into bev from Termek t inner join Vasarlas v on t.Tkod=v.Tkod where to_char(idopont,'yyyy.mm.dd')=ip; return bev; end;
Tranzakció kezelés PHP-ben PHP-ben tranzakciót az oci_execute paranccsal lehet
kezdeményezni, a parancs működési módja a mód paraméterrel állítható be: oci_execute($stmt, mód); A PHP alapbeállítása az OCI_COMMIT_ON_SUCCESS mód, ami azt jelenti, hogy minden kiadott parancs (oci_execute($stmt);) azonnal végrehajtásra kerül, nincsenek tranzakciók. Ha tranzakciókat akarunk használni, a parancsok kiadásakor ezt a módot meg kell változtatni: oci_execute($stmt, OCI_NO_AUTO_COMMIT); Az így végrehajtott parancsok az: – oci_execute($stmt); vagy az – oci_commit($conn); utasítással véglegesíthetők, az – oci_rollback($conn); utasítással pedig visszavonhatók.
127/123
B IT M A N
Tranzakció kezelés PHP-ben
mytab col1
127/124
B IT M A N
Izolációs szint beállítása set transaction [READ ONLY | READ WRITE] [isolation level [SERIALIZABLE | READ COMMITED] Parancssor
Non repeatable Dirty read read Nem megismé- Piszkos olvasás telhető olvasás
SERIALIZABLE Nem lehetséges Nem lehetséges Sorba rendezhető READ COMMITED Lehetséges Nem lehetséges Nem lehetséges Ismételhető olvasású READ ONLY Lehetséges Lehetséges Nem lehetséges Olvasás biztos READ WRITE Lehetséges Lehetséges Lehetséges Nem olvasás biztos