Adatbázis Rendszerek II.users.iit.uni-miskolc.hu/~szucs/ab2/levoa/1405_MySql_PHP5_uj.pdf · 12/70...
Transcript of Adatbázis Rendszerek II.users.iit.uni-miskolc.hu/~szucs/ab2/levoa/1405_MySql_PHP5_uj.pdf · 12/70...
B I T M A N 1/70 B I T M A N v: 2014.03.08
5. Ea: MySQL - PHP
Adatbázis Rendszerek II.
B I T M A N 2/70
Témakörök
A kategória tábla PHP programja
Tárolt rutinok hívása PHP-ből
PHP előkészületek
PHP adatbázis alapok
Tranzakció kezelés PHP-ből
HTML, PHP alapok (gyorstalpaló)
Melós (miniprogram)
B I T M A N 3/70
HTML, PHP alapok (gyorstalpaló)
HTML alapok (gyorstalpaló)
PHP alapok (gyorstalpaló)
B I T M A N 4/70
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ű
– Fejléc – Head
– Dokumentumtörzs – Body
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…
B I T M A N 5/70
HTML alapok 2.
<HTML>
<HEAD>
<TITLE> Az oldal címe </TITLE>
</HEAD>
<BODY>
Helló Világ!
</BODY>
</HTML>
1. Jegyzettömb, beírás 2. Mentés: pl. prb.htm 3. Megnézés
böngészőben 2x
B I T M A N 6/70
Az igazi kód…
B I T M A N 7/70
HTML alapok 3. Almalap elkészítése – 1.
Oldal címe
Félkövér szöveg
Kép
Link
Normál szöveg több sorban
B I T M A N 8/70
Bekezdés
Félkövér Félkövér <HTML>
<HEAD><TITLE> Almalap </TITLE></HEAD>
<BODY>
<p> <b> Az alma: </b> <br>
- Finom,<br>
- Mókás,<br>
- Szeletelt</p>
<p> <img src="alma.jpg" width="170" height="176">
<br><br>
AlmaInfo:
<a href="http://www.almalap.hu/">Az alma honlapja</a>
</p>
</BODY>
</HTML>
HTML alapok 4. Almalap elkészítése – 2.
Sortörés
Bekezdés
Kép beszúrás: fájl neve, szélesség, magasság
Link beszúrás: hivatkozás, megjelenő szöveg
B I T M A N 9/70
Címszintek
Címek, alcímek 6 szint mélységben
<H1 ALIGN="irány"> Szöveg </H1>
<H2 ALIGN="irány"> Szöveg </H2>
NOWRAP – Sortörés kikapcsolása
<hr /> – Vízszintes vonal
<HTML><HEAD><TITLE> HTML próbalap </TITLE> </HEAD>
<BODY>
<H1 ALIGN="left"> Szöveg </H1>
<H2 ALIGN="center"> Szöveg </H2>
<H3 ALIGN="right"> Szöveg </H3>
</BODY>
</HTML>
B I T M A N 10/70
Karakterformátumok
<b>Szöveg</b><br> – félkövér
<i>Szöveg</i><br> – dőlt
<u>Szöveg</u><br> – aláhúzott
<s>Szöveg</s><br> – áthúzott
<tt>Szöveg</tt><br> – fixpontos
<big>Szöveg</big><br> – nagyméretű
<small>Szöveg</smallbig><br> – kisméretű
H<sub>2</sub>SO<sub>4</sub><br> – alsó
index
16<sup>30</sup><br> – felső index
<FONT FACE="név" COLOR="szín" SIZE=szám> … </FONT>
B I T M A N 11/70
Karakterformátumok
<HTML>
<HEAD><TITLE> HTML próbalap </TITLE></HEAD>
<BODY>
<p>
<font size="5" face="arial" color="red">
Arial, 5-ös méretű, piros szöveg.
</font></p>
<p>
<font size="3" face="times" color="blue">
Times, 3-as méretű, kék szöveg.
</font></p>
</BODY>
</HTML>
B I T M A N 12/70
FFF
FFF
CCC
CCC
999
999
666
666
333
333
000
000
FFC
C00
FF9
900
FF6
600
FF3
300
99C
C00
CC9
900
FFC
C33
FFC
C66
FF9
966
FF6
633
CC3
300
CC0
033
CCF
F00
CCF
F33
333
300
666
600
999
900
CCC
C00
FFF
F00
CC9
933
CC6
633
330
000
660
000
990
000
CC0
000
FF0
000
FF3
366
FF0
033
99F
F00
CCF
F66
99C
C33
666
633
999
933
CCC
C33
FFF
F33
996
600
993
300
663
333
993
333
CC3
333
FF3
333
CC3
366
FF6
699
FF0
066
66F
F00
99F
F66
66C
C33
669
900
999
966
CCC
C66
FFF
F66
996
633
663
300
996
666
CC6
666
FF6
666
990
033
CC3
399
FF6
6CC
FF0
099
33F
F00
66F
F33
339
900
66C
C00
99F
F33
CCC
C99
FFF
F99
CC9
966
CC6
600
CC9
999
FF9
999
FF3
399
CC0
066
990
066
FF3
3CC
FF0
0CC
00C
C00
33C
C00
336
600
669
933
99C
C66
CCF
F99
FFF
FCC
FFC
C99
FF9
933
FFC
CCC
FF9
9CC
CC6
699
993
366
660
033
CC0
099
330
033
33C
C33
66C
C66
00F
F00
33F
F33
66F
F66
99F
F99
CCF
FCC
CC9
9CC
996
699
993
399
990
099
663
366
660
066
006
600
336
633
009
900
339
933
669
966
99C
C99
FFC
CFF
FF9
9FF
FF6
6FF
FF3
3FF
FF0
0FF
CC6
6CC
CC3
3CC
003
300
00C
C33
006
633
339
966
66C
C99
99F
FCC
CCF
FFF
339
9FF
99C
CFF
CCC
CFF
CC9
9FF
996
6CC
663
399
330
066
990
0CC
CC0
0CC
00F
F33
33F
F66
009
933
00C
C66
33F
F99
99F
FFF
99C
CCC
006
6CC
669
9CC
999
9FF
999
9CC
993
3FF
660
0CC
660
099
CC3
3FF
CC0
0FF
00F
F66
66F
F99
33C
C66
009
966
66F
FFF
66C
CCC
669
999
003
366
336
699
666
6FF
666
6CC
666
699
330
099
993
3CC
CC6
6FF
990
0FF
00F
F99
66F
FCC
33C
C99
33F
FFF
33C
CCC
339
999
336
666
006
699
003
399
333
3FF
333
3CC
333
399
333
366
663
3CC
996
6FF
660
0FF
00F
FCC
33F
FCC
00F
FFF
00C
CCC
009
999
006
666
003
333
339
9CC
336
6CC
000
0FF
000
0CC
000
099
000
066
000
033
663
3FF
330
0FF
00C
C99
009
9CC
33C
CFF
66C
CFF
669
9FF
336
6FF
003
3CC
330
0CC
00C
CFF
009
9FF
006
6FF
003
3FF
Biztonságos színek és Hexa kódjuk.
B I T M A N 13/70
<TABLE> <TBODY>
<TR> <TD> ID </TD>
<TD>NÉV</TD>
<TD>SZÜLÉV</TD>
<TD>CÍM</TD> </TR>
<TR><TD>1</TD>
<TD>Béla</TD>
<TD>1990</TD>
<TD>Budapest</TD></TR>
<TR><TD>2</TD>
<TD>Géza</TD>
<TD>1992</TD>
<TD>Győr</TD></TR>
<TR><TD>3</TD>
<TD>Jenő</TD>
<TD>1993</TD>
<TD>Miskolc</TD></TR>
</TBODY> </TABLE>
Táblázatok
Táblázat
kezdete
Sor
Oszlop
B I T M A N 14/70
Hiperhivatkozások a webhelyen
index.html
www.uw.hu
B I T M A N 15/70
Weblapon belüli linkek
<HTML>
<HEAD><TITLE> HTML próbalap </TITLE></HEAD>
<BODY>
Szöveg<br>
<a name="hsz">Hasznos szöveg</a> <br>
Szöveg<br>
Szöveg<br>
Szöveg<br>
Szöveg<br>
Szöveg<br>
Szöveg<br>
Szöveg<br>
Szöveg<br>
Szöveg<br>
Szöveg<br>
Szöveg<br>
<a href="#hsz">Ugrás a Hasznos szöveghez</a> <br>
Szöveg<br>
</BODY>
</HTML>
B I T M A N 16/70
Webhelyen belüli és külső linkek
<a href="mam.htm">Mai menü</a>
<a href="fotok/foto.htm">Fotók</a>
<a href="http://www.w3schools.com/">Link a W3Schools
weblapra</a>
<a href="http://www.w3schools.com/" target="_blank"
>Link a W3Schools weblapra</a>
B I T M A N 17/70
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
B I T M A N 18/70
HTML űrlap – Be.html
<html>
<head>
<title> Bejelentkezés </title>
</head>
<body>
<form action="be_feldolgozo.php" method=post>
<p>Kérem a nevemet: <br>
<input type = text name="tm" size=17>
<p><input type=submit name="kuldes" value="Belépek">
</form>
</body>
</html>
B I T M A N 19/70
Feldolgozás – be_feldolgozo.php
<?php
$aa = $_POST['tm'];
print 'Szia '.$aa.'!';
?>
<form action="Be.html">
<br>
<input type=submit name="vissza" value="Vissza">
</form>
B I T M A N 20/70
HTML űrlap – Beviteli elemek
<input type= xxx >
text
password
checkbox
radio
select
submit
reset
B I T M A N
B I T M A N 21/70
HTML űrlap – Beviteli elemek (2)
<form>
<p>Kérem a nevemet: <br>
<input type=text name="tm" size=17> </p>
<p>Kérem a jelszavamat: <br>
<input type=password name="tm2" size=17> </p>
<p>Naplózás: <input type=checkbox name="tm3">
Titkosítás: <input type=checkbox name="tm4"
checked="checked"> </p>
B I T M A N 22/70
HTML űrlap – Beviteli elemek
<p>Betűméret: S<input type=radio name="tmr" value="S">
M<input type=radio name="tmr" value="M">
L<input type=radio name="tmr" value="L" checked="checked">
XL<input type=radio name="tmr" value="XL"></p>
Módszer:
<SELECT NAME="menu">
<OPTION> Lassan, ráérek.
<OPTION> Tempósan, sietek!
<OPTION> Még nem vagy kész?
</SELECT><br><br><br>
<p><input type=submit name="kuldes" value="Belépek">
<input type="reset" value="Töröl"></p>
</form> B I T M A N
B I T M A N 23/70
HTML, PHP alapok (gyorstalpaló)
HTML alapok (gyorstalpaló)
PHP alapok (gyorstalpaló)
B I T M A N 24/70
A cél:
Webes kliensről manipulálni az adatbázist.
B I T M A N 25/70
A megoldás:
PHP alkalmazása
Szerver-oldal
<HTML>
<HEAD>
<TITLE>
PHP
</TITLE>
</HEAD>
HTTP SQL
HTML
Kliens-oldal
<?php $connect
Piros Kék Zöld
Piros, Kék, Zöld
B I T M A N 26/70
Név
Web böngésző
http://helo.php
PHP
feldolgozó
PHP
file
HTML
Jelszó DBMS
Adatbázis
szerver
Web szerver
A PHP működése
B I T M A N 27/70
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.
B I T M A N
B I T M A N 28/70
Tudattágítók
Rasmus Lerdorf, Andi Gutmans, Zeev Suraski
B I T M A N 29/70
Dinamikus HTML oldal PHP-vel
<HTML>
<HEAD><TITLE>HTML PHP-vel!</TITLE></HEAD>
<BODY>
Kakukk! <br>
A mai dátum: <?php echo date("Y.M.d"); ?> <br>
Az aktuális időpont :
<?php echo date("H"); ?> óra,
<?php echo date("i"); ?> perc,
<?php echo date("s"); ?> másodperc.
</BODY>
</HTML>
F5 Mitől dinamikus?
B I T M A N 30/70
PHP 2 perc alatt – 1. perc
A PHP kód kezdete: <?php . . . vége: ?>
Szintaxis:
– Változók: – Gyengén típusos nyelv!
• $szoveg = "Kakukk"; $egész = 123; $tört = 18.39;
• $napok = array("hétfő", "kedd",); $napok[ ] = "szerda";
• $szam = array("egy"=> 55, "ketto"=>37); $szam["három"]=26;
– Automatikus típuskonverzió!
– Operátorok:
• $a, $b, $c = 3; $sz1, $sz2 = "retek";
• ++$a; --$a; $a *= $b; $a = $b / $c; $a = $b % $c;
• $sz = $sz1.$sz2; → retekretek $sz1 .= $sz2
• If ($a == 7) then, If ($a === $b) then, If ($a !== $b) then
• !, &&, ||, xor,
B I T M A N 31/70
PHP 2 perc alatt – 2. perc
A PHP kód kezdete: <?php . . . vége: ?>
Szintaxis:
– If (feltétel) { utasítások; } elsif { …; } else { …; }
– Switch (változó) case címke: utasítás; break; default:
– While (feltétel) { utasítások; }
– Do { utasítások; } while (feltétel);
– For (kezdőérték; kilépési feltétel; növekmény){
utasítások; }
• Pl.: for ($s=0, $i=1; $i<=10; ++$i) { $s += $i; }
– Kommentek: /* … */, vagy sor elején //, #
B I T M A N 32/70
Az adatbázis-programozás lépései
Lekérdezés
Lekapcsolódás
Kapcsolódás
Eredmények
feldolgozása
B I T M A N 33/70
Az adatbázis-programozás lépései
Lekapcsolódás
Driver regisztrálása
Kapcsolódás a DBMS-hez
Kapcsolódás
Lekérdezés
Eredmények
feldolgozása
B I T M A N 34/70
Az adatbázis-programozás lépései
Lekapcsolódás
Eredmények
feldolgozása
SQL kérés (STATEMENT)
összeállítása
SQL kérés elküldése
Kapcsolódás
Lekérdezés
B I T M A N 35/70
Az adatbázis-programozás lépései
Lekapcsolódás
Kapcsolódás
Az eredményhalmaz (CURSOR)
rekordonkénti bejárása
Az értékek átadása
programváltozóknak
Lekérdezés
Eredmények
feldolgozása
B I T M A N 36/70
Az adatbázis-programozás lépései
Kapcsolódás
Lekérdezés
Eredmények
feldolgozása
Eredményhalmaz lezárása
SQL kérés lezárása
Kapcsolat lezárása Lekapcsolódás
B I T M A N 37/70
beurlap.html
<html>
<head>
<title> Bejelentkezés </title>
</head>
<body>
<form action="belep.php" method=post>
<p>Kérem a nevet: <br>
<input type=text name="nev" size=20>
<p>Kérem a jelszót: <br>
<input type=password name="psw" size=20>
<p><input type=submit name="kuldes" value="Belépek"></p>
</form>
</body>
</html>
B I T M A N 38/70
belep.php
<?php
$conn = mysqli_connect("localhost","root","root","ceg");
$jsz = $_POST['psw'];
$sql = "select jelszo from melos where nev= '$_POST[nev]'";
$qq = mysqli_query($conn, $sql);
$adat = mysqli_fetch_array($qq);
If ($adat["jelszo"] == $jsz){echo "Szia User! Dolgozhatsz!";}
else { echo "Nem ismerlek! Nem dolgozhatsz!";}
mysqli_close($conn);
?>
B I T M A N 39/70
Témakörök
A kategória tábla PHP programja
Tárolt rutinok hívása PHP-ből
PHP előkészületek
PHP adatbázis alapok
Tranzakció kezelés PHP-ből
PHP, HTML alapok (gyorstalpaló)
Melós (miniprogram)
B I T M A N 40/70
PHP – MySQL kapcsolat
B I T M A N 41/70
A feladat alapja:
A Melos tábla:
Create table Melos(
Azon char(3) primary key,
Nev char(20),
Fizetes integer(6));
Melos
Nev
Fizetes
Azon 1
2
B I T M A N 42/70
abkezel.php (1. rész)
<html><head><title> ab kezelő </title>
</head><body>
<p><b>Adatfelvitel</b></p>
<form action="insert.php" method=post>
<p>Kérem az azonosítót: <br>
<input type=text name="az" size=4>
<p>Kérem az új nevet: <br>
<input type=text name="tm" size=20>
<p>Kérem a fizetést: <br>
<input type=text name="tm2" size=12>
<p><input type=submit name="küldés" value="Beszúr">
<input type="reset" value="Ürít"></p>
</form><br> B I T M A N
B I T M A N 43/70
<p><b>Adatmódosítás</b></p>
<form action="updatefiz.php" method=post>
<p>Kérem az azonosítót: <br>
<input type=text name="az" size=4>
<p>Kérem az új fizetést: <br>
<input type=text name="fiz" size=6>
<p><input type=submit name="küldés2"
value="Módosítás"></p>
</form><br>
abkezel.php (2. rész)
B I T M A N 44/70
<p><b>Adattörlés</b></p>
<form action="delete.php" method=post>
<p>Kérem a törlendő azonosítót: <br>
<input type=text name="dr" size=4>
<p><input type=submit name="küldés4"
value="Rekord törlése"></p>
</form><br>
<p><b>Lista</b></p>
<form action="kiirciklus.php" method=post>
<p><input type=submit name="küldés3"
value="Kiíratás"></p>
</form>
</body> </html>
abkezel.php (3. rész)
B I T M A N
B I T M A N 45/70 B I T M A N
B I T M A N 46/70
PHP – MySQL kapcsolat
Mysql csomag
Függvények, eljárások gyűjteménye, melyekkel megvalósítható az adatbázis-kezelés PHP-ből.
Helye: a PHP csomagban a php_mysql.dll
Engedélyezése: php.ini fájlban kivenni a ;-t:
; extension=php_mysql.dll
A PHP kódok futtatásához szükséges egy webszerver, ami alá telepítve van a PHP.
Otthonra:
– XAMPP (Apache, MySQL, PHP, …)
– Letöltés: xampp.fs.net
B I T M A N 47/70
PHP – MySQL – insert.php
<?php
$conn = mysqli_connect("localhost","root","root","proba");
$sql = "insert into melos values
('$_POST[az]','$_POST[tm]',$_POST[tm2])";
if (mysqli_query($conn, $sql)){
echo "Rekord hozzáadva!";
} else { echo "Gond van!"; }
mysqli_close($conn);
?>
B I T M A N 48/70
PHP – MySQL – updatefiz.php
<?php
$conn = mysqli_connect("localhost","root","root","proba");
$sql = "update melos set fizetes=$_POST[fiz] where
azon='$_POST[az] ' ";
if (mysqli_query($conn, $sql)){
echo "Fizetés módosítva!";
} else { echo "Gond van!"; }
mysqli_close($conn);
?>
B I T M A N 49/70
PHP – MySQL – delete.php
<?php
$c = mysql_connect("hostnév","user","jelszó");
$mdb = mysql_select_db("dbnév",$c);
$sql = "delete from t1 where azon='$dr'";
$fut = mysql_query($sql,$c);
print $fut;
mysql_close($c);
?>
B I T M A N 50/70
PHP – MySQL – kiirciklus.php
<?php
$conn = mysqli_connect("localhost","root","root","proba");
$eredmeny = mysqli_query($conn, "select * from melos");
while($adat = mysqli_fetch_assoc($eredmeny))
{ print ("Azon: ".$adat["Azon"]." Név: ".$adat["Nev"]."
Fizetés: ".$adat["Fizetes"]);
print("<br>");
}
mysqli_close($conn);
?>
B I T M A N 51/70
Témakörök
A kategória tábla PHP programja
Tárolt rutinok hívása PHP-ből
PHP adatbázis alapok
Tranzakció kezelés PHP-ből
PHP, HTML alapok (gyorstalpaló)
Melós (miniprogram)
B I T M A N 52/70
Kategóriák lekérdezése
B I T M A N
B I T M A N 53/70
Kapcsolódás – Vizsgálat
Access denied for user 'root'@'localhost' (using password:
YES)
Nincs ilyen ismert állomás.
B I T M A N 54/70
PHP – Elegáns megoldás
Kapcsolódási metódusok elhelyezése fájlban.
B I T M A N
1
2
1
2
B I T M A N 55/70
HTML – Elegáns megoldás
Táblázatos formátumú kiíratás
B I T M A N 56/70
Témakörök
A kategória tábla PHP programja
Tárolt rutinok hívása PHP-ből
PHP adatbázis alapok
Tranzakció kezelés PHP-ből
PHP, HTML alapok (gyorstalpaló)
Melós (miniprogram)
B I T M A N 57/70
Bolt adatbázis
Termék
Tkód Név
Leírás
Ár
Vásárlás
Kategória
Kkód Név
K-T
Vásárló
VID
Név
Cím
Sorszám
Időpont
Darab
Fizetés
Fkód Leírás
V-F
B I T M A N 58/70
Termék
Vásárlás
Bolt – Struktúra
Időpont Sorszám Darab Tkód VID
Név
Kategória
Leírás
Fizetés
Név Tkód Ár Leírás
Vásárló
Név
Kategória
VID Cím
Kkód
Fizmód Fkód
B I T M A N 59/70
Táblajáték – Kategória
Create database bolt;
Use bolt;
Create table Kategória(
Kkód char(3) primary key,
Név varchar(20) not null,
Unique (Név));
B I T M A N 60/70
A Kategória tábla kezelő felülete
KategoriaKezelo.php
3
1
2
4
B I T M A N 61/70
3
1
2
B I T M A N
B I T M A N 62/70
4
B I T M A N 63/70
katlista.php (3)
B I T M A N
1
B I T M A N 64/70
katlista.php (4) 1
B I T M A N 65/70
katnev.php (2) 2
B I T M A N 66/70
A KategoriKezelo.php ablakában íródik ki az eredmény
Kategória keresés – B-verzió (1)
B I T M A N
2B
B I T M A N 67/70
2B
B I T M A N
B I T M A N 68/70
ujkat.php (2) 3
B I T M A N 69/70
kattorol.php (2) 4
B I T M A N 70/70
VÉGE V É G E