You are on page 1of 14

Apache, PHP s MySQL: a hrom jbart

Aki PHP-ben programozik, annak rdemes az Apache WEB-szervert, valamint a MySQL adatbziskezel rendszert hasznlnia mg akkor is, ha Windows opercis rendszer alatt dolgozik. Az Apache alternatvja lehetne a Microsoft IIS, a MySQL-t pedig helyettesthetn a Microsoft Access adatbziskezel, viszont ha Linux-os krnyezet alatt kell folytatni a munkt, akkor ezeket a Windows-os programokat s krnyezeteket mr nem ll mdunkban hasznlni!
Apache

Az Apache egy virtulis WEB-szerver, ami lehetv teszi szmunkra a PHP programok sajt gpnkn val futtatst.
PHP

A PHP egy szerveroldali szkript-nyelv, melyel egyszeren s hatkonyan tudunk aktv WEB-oldalakat kszteni.
MySQL

A MySQL egy egyszer adatbzis-kezel krnyezet, mely az SQL lekrdez nyelv segtsgvel tud kommuniklni a PHP oldalakkal.
Apache 2 teleptse:

Telepts menete: a)Indtsuk el a teleptt: apache_2.0.44-win32-x86-no_ssl.exe b) Ha megjelenik egy zenet a "Windows Installer"-rl szl szveggel, kattintsunk az "OK" gombra c) Az dvzl oldalon ("Welcome...") kattintsunk a "Next" gombra d) Jelljk be a rdigombot az "I accept..." szveg mellett, s kattintsunk a "Next" gombra e) Kattintsunk a "Next" gombra f) A beviteli mezkbe fentrl lefele sorrendben a kvetkezket rjuk: localhost localhost me@localhost.com g) Ellenrizzk, hogy a "for All Users, on Port 80" melletti rdigomb be van-e jellve, majd kattintsunk a "Next" gombra h) Ellenrizzk, hogy a "Typical" melletti rdigomb be van-e jellve, majd kattintsunk a "Next" gombra i) A felknlt tvonalat fogadjuk el a "Next" gombra kattintva j) Kattintsunk az "Install" gombra, s vrjunk amg a telepts vgbemegy k) Vgl kattintsunk a "Finish" gombra
Indtsuk el az Apache szervert!

Elvileg telepts utn az Apache szerver automatikusan elindul. Ha jobb oldalt alul ltunk egy ikont, melyben egy jobbra mutat kis zld hromszg van, akkor a szerver fut. Ha ugyanitt kis piros ngyzetet ltunk, a szerver ll. A kis ikonra egyet kattintva, majd az Apache 2 menpontot (tbb sor nincs is) vlasztva elindthatjuk (Start), lellthatjuk (Stop) vagy jraindthatjuk (Restart) a szervert.
Szerver tesztelse!

Ha a szerver fut, a bngszbe rjuk be a kvetkez cmet: http://localhost

Ha az "Enter" gomb lenyomsa utn megjelenik egy WEB-oldal, rajta vastag betkkel a kvetkez szveg: "Seeing this instead of the website you expected?", akkor sikeresen teleptettk az Apache 2 WEB-szervert!
A PHP4 teleptse

Telepts menete: a) Indtsuk el a teleptt: php-4.2.3-installer.exe b) Kattintsunk a "Next" gombra c) Kattintsunk az "I agree" gombra d) Ellenrizzk, hogy a "Standard" melletti rdigomb be van-e jellve, majd kattintsunk a "Next" gombra e) A felknlt tvonalat a "Next" gombra kattintva fogadhatjuk el. Ha nem a C meghajtra teleptjk a PHP-t, akkor kattintsunk a "Browse" gombra, rjuk be a helyes tvonalat (pl. E:\PHP) s kattintsunk az "OK" gombra. Ha az tvonal helyes, kattintsunk a "Next" gombra f) Ellenrizzk, hogy a beviteli mezkben a kvetkez adatok szerepelnek-e: localhost me@localhost.com Ha nem, mdostsuk ket ennek megfelelen. g) Kattintsunk a "Next" gombra h) Jelljk be a rdigombot az "Apache" szveg mellett, s kattintsunk a "Next" gombra i) Kattintsunk a "Next" gombra j) Ha megjelenik egy "Sorry, the software..." kezdet zenet, kattintsunk az "OK" gombra k) Vgezetl kattintsunk az "OK" gombra
Vgezzk el a szksges belltsokat!

a) Hozzunk ltre egy j knyvtrat: C:\phpweb b) Nyissuk meg szerkesztsre a C:\Windows\php.ini fjlt c) Keressk meg s mdostsuk a kvetkez sorokat: doc_root = "C:\phpWeb" extension_dir = "C:\php" register_globals = On d) Mozgassuk t a C:/PHP/php4ts.dll fjlt a C:\Windows knyvtrba
Apache szerver felksztse PHP fjlok futtatsra

a) Nyissuk meg szerkesztsre a kvetkez fjlt: C:/Program Files/Apache Group/Apache/Conf/httpd.conf b) Keressk meg s mdostsuk a kvetkez sorokat: DocumentRoot "C:/phpweb" < Directory "C:/phpweb" > c) Keressk meg a "AddType image/x-icon .ico" sort, s al vegyk fel a kvetkez sorokat:

ScriptAlias /php4/ "C:/PHP/" AddType application/x-httpd-php .php AddType application/x-httpd-php .php3 AddType application/x-httpd-php .php4 Action application/x-httpd-php "/php4/php.exe"

FIGYELEM!!! Mint az a fenti sorokbl egyrtelmen kitnik, az Apache konfigurcis fjl-jban a megszokottl eltren \ (backslash) helyett / (slash) jelet kell hasznlnunk!
Teszteljk le az Apache PHP prost:

a) lltsuk le, majd indtsuk jra az Apache szervert b) Msoljuk be a mellkelt test.php fjlt a C:\phpweb knyvtrba c) a)A bngszbe rjuk be a kvetkez cmet:http://localhost/test.php Sikeres telepts s bellts esetn egy nyugtz zenetet ltunk, alatta az aktulis dtummal!
MySQL teleptse

a) Indtsuk el a teleptt: SETUP.EXE b) Kattintsunk a "Next" gombra c) Kattintsunk a "Next" gombra d) A felknlt tvonalat a "Next" gombra kattintva fogadhatjuk el. Ha nem a C meghajtra teleptjk a MySQL-t, akkor kattintsunk a "Browse" gombra, rjuk be a helyes tvonalat (pl. E:\MySQL) s kattintsunk az "OK", majd a "Yes" gombra. Ha az tvonal helyes, kattintsunk a "Next" gombra e) Ellenrizzk, hogy a "Typical" melletti rdigomb be van-e jellve, majd kattintsunk a "Next" gombra f) A telepts vgeztvel kattintsunk a "Finish" gombra
MySQL indtsa

a) Keressk meg s futtassuk a C:\mysql\bin\winmysqladmin.exe programot b) Ha be kell rnunk egy felhasznlnevet s jelszt, mindketthz rjuk ezt: "proba". c) Induls utn jobb oldalt alul az n. "System tray"-ben megjelenik egy kis forgalomirnyt lmpa. Ha ez a lmpa zlden vilgt, a MySQL szolgltats fut, nincs egyb teendnk! d) Ha a lmpa pirosan vilgt, kattintsunk r egyszer, majd a menbl vlasszuk ki az opercis rendszernknek megfelelt: Windows95/98/Me esetn a "Win 9x"-et, mg Windows NT/2000/XP esetn a "Win NT"-t. Az jonnan felbukkan mensorbl most vlasszuk az "Install the Service" menpontot, majd kattintsunk a "Yes" gombra. Ezutn ismt kattintsunk a kis lmpa ikonra, s a megfelel opercis rendszer kivlasztsa utn a felbukkan mensorbl most vlasszuk a "Start the Service" menpontot, s kattintsunk a "Yes" gombra. Ezutn - ha mindent jl csinltunk - a kis lmpa mr zlden vilgt!
Apache - PHP - MySQL egyttes tesztelse:

a) Msoljuk be a mellkelt testmysql.php fjlt a C:\phpweb knyvtrba

b) A bngszbe rjuk be a kvetkez cmet:http://localhost/testmysql.php Ha mindent jl csinltunk, megjelenik a teszt-oldal. Minden egyes frissts utn egy j sornak kell megjelennie. Ha ez gy trtnik, akkor bszkk lehetnk: sikeresen teleptettk az Apache PHP MySQL hrmast!!!
Mi az a PHP?

A PHP kezdetben csak egy makrgyjtemnynek indult, ami a szemlyes honlapok programozst volt hivatott tmogatni. Neve is innen ered: Personal Home Page (ms forrsok szerint Personal Homepage Programming). A PHP azonban tlntt kezdeti feladatn, s mra mr egy komplett WEB-programozi nyelvv alakult.
A PHP program szerkezete

Egy PHP program nem ms, mint szokvnyos HTML kd, melybe PHP nyelv kdrszleteket (szkripteket) illeszthetnk be. A HTML kdon bell a PHP kd a < ? s a ? > jelek kz kerl. Tbbsoros kd esetben a sorok vgre pontosvesszt kell tennnk. me egy egyszer plda: < br > < HTML > < BODY > < b >Egy egyszer sszeadsi mvelet:< /b >< br> <? $eredmeny = 10 + 13; print "Tz plusz tizenhrom = $eredmeny"; ?> < br>< br> < b>Ez pedig a pontos id:< /b> < ?= date("H:i:s")?> < /BODY> < /HTML>

A PHP tulajdonkppen egy szerveroldali szkript nyelv. Ez a megfogalmazs elsre bonyolultnak tnhet, m roppant egyszer megrteni (s ha ezt megrtjk, akkor a PHP lnyegt mr el is sajttottuk). A szerveroldali szkriptek a kvetkezkpp mkdnek: 1. A felhasznl berja a bngszbe a futtatni kvnt PHP program nevt (elrsi tvonallal egytt). 2. A szerver, ahol a PHP program tallhat, megkeresi a szban forg PHP fjlt, s egy rtelmez program segtsgvel lefuttatja azt. 3. Futtats kzben egy gynevezett "eredmny HTML oldalt" kszt, melyet miutn a PHP kd vgre rt - visszakld a felhasznli oldalra a bngsznek. 4. A felhasznl mr csak ezt a PHP kd alapjn kszlt HTML oldalt ltja.

A PHP-rtelmez program az albbi szablyokat veszi figyelembe a PHP kd rtelmezse kzben: 1. Ha HTML kdot tall, azt vltoztats nlkl tmsolja az eredmny oldalra. 2. Ha PHP kdot lt, azt lefuttatja. Ha azt a parancsot kapja, hogy "rd ki!", akkor a kirand szveget az eredmnyoldalra rja ki, mgpedig az aktulis pozciba. Ha brmilyen ms parancsot kap, azt vgrehajtja, s nem nyl az eredmny oldalhoz.
Kir parancs a PHP-ben

Mint azt a fenti pldbl is ltjuk, a PHP-ben ktflekppen adhatjuk ki az "rd ki!" parancsot. Az els lehetsg a PRINT() fggvny hasznlata, melyet a kvetkezkpp hasznlhatunk: print("szveg, amit ki szeretnnk rni"); A print fggvny esetben a zrjeleket nyugodtan elhagyhatjuk: print "szveg, amit ki szeretnnk rni"; A kiratsnak ltezik egy egyszerbb mdja is, melyet kizrlag akkor alkalmazhatunk, ha a nyit s zr PHP jelek kztt csak ezt az egy kir parancsot szeretnnk kiadni. Ekkor a nyit jel utn kzvetlenl egy egyenlsgjelet kell kitennnk, majd ezt kveti a kirni kvnt szveg: < ?= "szveg, amit ki szeretnnk rni"? >

A PHP-ben a vltozk neve el egy dollrjelet kell tennnk. A vltozk ltrehozsnak legegyszerbb mdja az rtkads: $szam = 15; $szoveg = "valami"; A vltozkat szvegeken bell is elhelyezhetjk. A szveg kirsakor a vltoz rtke a megadott helyen kerl kirsra: < ? $eletkor = 23; print "n most $eletkor ves vagyok." ? > A fenti kd eredmnye: "n most 23 ves vagyok."
Szvegrszek s vltozk sszefzse

A PHP-ben a szvegsszefzs jele a pont. A kvetkez szveget 3 rszletben rjuk ki: <? print "n most" . " 23 ves" . " vagyok." ?> Szvegrszeket s klnbz tpus vltozkat nyugodtan sszefzhetnk, az eredmny mindig szveges tpus lesz:

<? $eletkor = 23; $szoveg = "ves"; print "n most" . $eletkor . $szoveg . " vagyok." ?> A fenti kdrszlet helyett a kvetkezt is rhattuk volna: <? $eletkor = 23; $szoveg = "ves"; print "n most $eletkor $szoveg vagyok." ?>
Dtum- s idfggvnyek hasznlata

A dtum s idpont lekrdezsre leggyakrabban a DATE() fggvnyt hasznljuk: < ?= date("Y-m-d, H:i:s")?> A vezrl karakterek jelentse a kvetkez: Y: v, m: h, d: nap, H: ra, i: perc, s: mp. Ezeket a betket brmilyen sorrendben felhasznlhatjuk, kzjk tetszleges karaktereket tehetnk. A vezrl karakterek helyre az aktulis rtk kerl, a tbbi karakter rintetlen marad. Pldul kirhatjuk a hnapot s az vet egy per-jellel elvlasztva: < ?= date("m/Y")?>

A PHP-ben a feltteles elgazs szerkezete leginkbb a JavaScript-hez hasonlt: if (felttel) { [parancsok] } elseif (jabb felttel) { [parancsok] } else { [parancsok] }

A fggvnyek ltrehozsa a PHP-ben szintn a JavaScript-hez hasonlan trtnik: function osszeadas ($szam1,$szam2) { $eredmeny = $szam1 + $szam2;

print "$szam1 + $szam2 = $eredmeny"; } A fggvny meghvsa: osszeadas(15,30); Az eredmnyoldalon ez kerl kirsra: "45". A fenti pldban meghvtuk a fggvnyt, tadtunk kt paramtert, majd a fggvnyen bell kiadtunk egy kir parancsot. Msik mdja a fggvnyek hasznlatnak, hogy a meghvott fggvny egy rtket ad vissza, amit utna felhasznlunk (pldul kiratunk): function osszead($egy,$ket) { $eredmeny = $egy + $ket; return $eredmeny; } A fggvny meghvsa: print osszead(15,30); Az eredmnyoldalon ismt ez kerl kirsra: "45". Az rlapon minden meznek, amit el szeretnnk kldeni feldolgozsra, nevet kell adnunk. ltalban brmilyen kezet nlkli nevet hasznlhatunk, erre nzve nincs klnsebb szably. A mez neve legyen rvid, s utaljon a mez tartalmra (pl. nev, jelszo, eletkor, stb.). Gomboknak nem kell nevet adnunk, hiszen azokat nem kldjk el feldolgozsra. Rejtett mezknek nemcsak nevet, de rtket is kell adnunk, mivel a felhasznl ezt nem tudja megtenni. Pldaknt vegyk a kvetkez rlapot, ahol minden meznek alaprtket is adunk: < FORM action="feldolgozo.php" method="POST"> < input type="hidden" name="rejtett" value="valami"> Nv: < input type="text" name="nev" value="Eza Nevem"> Jelsz: < input type="password" name="jelszo" value="123"> < input type="submit" value="Elkld!"> < /FORM>
Mezk felhasznlsa vltozknt

A PHP feldolgoz-program futtatsakor az rlaprl tadott mezket automatikusan vltozkknt tudjuk kezelni: a vltoz neve a mez neve, rtke pedig a mez rtke lesz. Termszetesen a vltoz neve eltt a ktelez dollrjelet is hasznlnunk kell. Ha a fenti rlapot vltoztats nlkl elkldjk feldolgozsra, a "feldolgozo.php" oldalon az tadott rtkeket a kvetkez kddal tudjuk kiratni az eredmny oldalra: <? print "< b>Nv:< /b> $nev < br>";

?>

print "< b>Jelsz:< /b> $jelszo < br>"; print "< /b>Rejtett:< /b> $rejtett";

Ekkor az eredmnyoldalon a kvetkezt olvashatjuk: Nv: Eza Nevem Jelsz: 123 Rejtett: valami
Paramterek tadsa manulisan egy URL-ben

Ha egy rlapot kldnk el feldolgozsra, akkor paramterknt az rlapon szerepl mezk nevt s rtkket adjuk t a feldolgoz PHP programnak. Van viszont egy msik lehetsg is a paramterek s rtkeik tadsra: egy URLben (pldul egy linkre kattintva) a feldolgoz program neve utn egy krdjellel jelezzk, hogy paramtereket kvnunk tadni, majd ezutn felsoroljuk a paramterek nevt s rtkt. A paramter neve utn egy egyenlsgjelet kveten rjuk be a paramter rtkt. A paramtereket egymstl egy & jellel vlasztjuk el. Ha teht a kvetkez URL-t hvjuk meg (pldul egy link segtsgvel), akkor a feldolgoz program szemszgbl ugyanaz trtnik, mintha a fentebb kidolgozott rlapot kldennk el neki: feldolgozo.php?nev=Eza Nevem&jelszo=123&rejtett=valami A "feldolgozo.php" oldalon ekkor ugyangy hrom vltozt tudunk felhasznlni (s kiratni), nvszerint: $nev, $jelszo s $rejtett.
Egy nv alatt tbb rtk tadsa: tmb tpus mezk

Ha checkbox-ok egy csoportjnak ugyanazt a nevet adjuk, s az sszes ngyzetet kipipljuk, akkor egy nv alatt tbb rtket fogunk elkldeni a feldolgoz programnak. Hasonl a helyzet a tbbszrs kivlasztst engedlyez listk esetben is: a listnak egy neve van, de tbb rtket is t szeretnnk adni (a kivlasztott sorok rtkeit). A feldolgoz PHP oldalon ezeket a mezket nem vltozknt, hanem tmbknt tudjuk majd felhasznlni. Ehhez viszont az szksges, hogy a mezk nevnek vghez a tmbre utal [ ] jeleket is hozz kell fznnk! Az albbi pldban hrom azonos nev checkbox-ot ksztnk, majd mindhrmat bejelljk, s gy kldjk el az rlapot a feldolgoz programnak: < FORM action="feldolgozo.php" method="POST"> Audi < input type="checkbox" name="auto[]" value="Audi"> Lada < input type="checkbox" name="auto[]" value="Lada"> BMW < input type="checkbox" name="auto[]" value="BMW"> < input type="submit" value="Elkld!"> < /FORM> Elklds utn a "feldolgozo.php" oldalon egy $auto nev tmbt kapunk, melyet

majd fel kell dolgoznunk (pldul kiratjuk az elemeit, vesszvel elvlasztva). A PHP oldalon a tmb neve utn mr nem kell kitennnk a [ ] jeleket! Elszr azonban azt kell megvizsglnunk, hogy kaptunk-e egyltaln ilyen nev tmbt! Ha ugyanis egyik checkbox-ot sem jelljk ki, akkor egyltaln nem kapunk $auto nev tmbt, gy azt fel sem tudjuk dolgozni! Ez csak a checkbox-okra s a rdigombokra igaz, a tbbi meztpusra nem! Ha teht egy szveges mezt resen kldnk el, akkor ettl mg lesz olyan nev vltoznk, csak az rtke res lesz. Vltoz s tmb ltezsnek vizsglatra a kvetkez fggvnyt hasznlhatjuk: isset($valtozo) vagy isset($tomb) Az isset() fggvny visszaadott rtke igaz (true), ha ltezik ilyen nev vltoz vagy tmb, s hamis (false) ha nem ltezik. A fenti, checkbox-okat tartalmaz rlapot feldolgoz PHP oldal kdja teht gy kell, hogy kezddjn: if (isset($auto)) { ...tmb feldolgozsa... } Ha ltezik $auto nev tmb, akkor elkezdhetjk annak feldolgozst.
Tmbk feldolgozsa

Egy tmb elemein az albbi ciklus segtsgvel futhatunk vgig: foreach ($tomb as $elem) { ...mveletek... }

A ciklus minden egyes lpsben a kvetkez tmbelemet beolvassuk az $elem nev vltozba, amivel mr azt tesznk, amit szeretnnk. Ha elfogytak a tmbelemek, a ciklusnak vge, s a program futsa a ciklus utn folytatdik. Ha teht az rlapon kivlasztott autk neveit ki szeretnnk iratni egyms al, a kvetkez feldolgoz programot kell elksztennk: if (isset($auto)) { "< br>"; } } foreach ($auto as $autonev) { print $autonev .

A fenti kdban elszr megvizsgljuk, hogy egyltaln vlasztottunk-e ki autt, majd a tmbn vgiglpkedve kirjuk a tmbelemek rtkt, melyhez mindig hozzfznk egy sortrst is.

Mez, rekord s adattbla fogalma

Fel

Az albbi tblzat egy adattbla, melynek 4 mezje van, s fel van tltve 3 rekorddal. A mezk neve a fejlc sorban lthat. Egy mez egy oszlopnak, egy rekord a tblzat egy sornak felel meg:

Adatbzis s az adattblk kapcsolata

Fel

Az adatbzis nem ms, mint olyan adattblk egyttese, amelyek egy alkalmazshoz tar-toznak. Az adattblkon kvl az adatbzis tartalmazza az indexfjlokat is, illetve egyb kiegszt informcikat, melyek a felhasznl szmra lthatatlanok.

Indexek s az egyedi azonostk fontossga

Fel

Minden adattblban szksg van egy olyan mezre, aminek a tartalma minden rekord esetben ms lesz, teht egyrtelmen azonostja a rekordokat. Clszer ezt a mezt el-szr ltrehozni, s "id"-nak elnevezni. Pldul a kvetkez tblban az "id" mez nlkl a 2. s a 4. rekordot nem lehetne meg-klnbztetni:

Az index-fjl nem ms, mint egy adott mez szerint sorbarendezett tbla, mely az eredeti tbla minden rekordjt kpviseli. Az index-fjlok segtsgvel egy adott mez szerinti ke-resst sokkal gyorsabban hajt vgre a program, mint index-fjl

nlkl. Az index-fjl kt mezt tartalmaz: egyrszt a kivlasztott mezt, ami szerint sorba van rendezve, msrszt egy azonost mezt, amely megadja, hogy az adott rekord az eredeti tblban fizikailag hnyadik helyen tallhat (ez utbbi nem mindig egyezik az id mez rtkvel!!!). Pldaknt vegynk egy tblt, majd a hozz tartoz, a "nev" mez szerinti indextblt:

A MySQL Control Center teleptse

Fel

A MySQL Control Center letlthet itt! Az adatbzisok kezelsre mi a MySQL rendszert vlasztottuk, melyet egy grafikus felleten keresztl fogunk kezelni. Ez a grafikus fellet a MySQL Control Center. ndtsuk el a teleptt: setup.exe A teleptsi folyamat egyszer: a telept indtsa utn kattintsunk a "Next" gombra, vlasszuk ki az "I accept the license agreement" rdigombot s kattintsunk a "Next" gombra, majd mg ngyszer ugyancsak a "Next" gombra kell kattintanunk, s vgl a "Finish"-re. A MySQL Control Center-t a Start-menbl indthatjuk: "Start" - "Programs" "MySQL Control Center" - "MySQL Control Center".
Adatbzis-szerver ltrehozsa s megnyitsa Fel

Ha a "MySQL servers" ablakban mg nem ltunk egy szervert sem, ltre kell hoznunk egyet. Nyomjuk le a Ctrl+N billentyket, a "Name" mezbe rjuk be a szerver nevt (pl. "proba"), a "Host Name" mezbe pedig azt, hogy "localhost". Az "User Name" mezt nem ktelez kitltennk, de mgis inkbb rjuk be, hogy "root". Vgl jobb oldalt alul kattintsunk az "Add" gombra. Az jonnan ltrehozott szervernkre dupln kattintva megnyithatjuk azt.
Adatbzis s adattbla ltrehozsa, indexels Fel

Az adatbzis-szerver megnyitsa utn kattintsunk dupln a "Databases" mappra, mire lthatv vlnak a mr ltrehozott adatbzisok. A "Databases" mappra a jobb egrgombbal kattintva az elugr menbl vlasszuk

a "New Database" opcit, adjuk meg a ltrehozand adatbzisunk nevt, s kattintsunk az "OK" gombra. Az jonnan ltrehozott adatbzison dupln kattintva megnyithatjuk azt. Ekkor megjelenik a "Tables" sor, melyen jobb egrgombbal kattintva, s a "New Table" opcit vlasztva elkszthetjk els adattblnkat. Az els oldalon (Field Properties) kell megadnunk az adattbla szerkezett. Elszr mindig a mezk neveit adjuk meg, majd az adattpusukat s a hosszukat. Az els mez mindig az "id" legyen! Tpusa "bigint", hossza 20 legyen. Alul jelljk be az "AUTO_INCREMENT" ngyzetet, s fell kattintsunk a kis kulcs ikonra. Ezzel az "id" mez automatikusan nvekv szmokat fog tartalmazni, s lesz az elsdleges kulcsunk (egyedi azonost).

A tbbi meznl az albbi adattpusok kzl vlasszunk: int: nem tl nagy egsz szm bigint: nagy egsz szm double: tizedes szm varchar: vegyes szveges (betk, szmok s rsjelek) date: dtum text: nagyon hossz szveg datetime: dtum s idpont egyms utn A kvetkez oldalon (Indexes) a tblhoz tartoz indexeket tudjuk elkszteni. A zld plusz (+) jelre kattintva kszthetnk j indexet, amibe a bal oldalrl tudunk mezket felvenni. Meznknt is kszthetnk indexeket, de egy index tbb mezt is tartalmazhat. A fontosabb mezk szerint rdemes indexelni, de ezen mg menet kzben is vltoztathatunk. A harmadik oldalon (Table Properties) a "Table Name" mezbe rjuk be adattblnk nevt, majd fell a ments ikonra kattintva, vagy a Ctrl+S billentyket lenyomva tudjuk elmenteni a ksz tblt. A sikeres mensrl alul kapunk egy rtestst (Table created successfully), ezutn bezrhatjuk az ablakot.
Rekordok felvtele, mdostsa s trlse Fel

Az jonnan ltrehozott adattbla nevre dupln kattintva megnyithatjuk azt. Kezdetben mg res, hiszen nincsenek rekordok felvve. A Ctrl+I billentyket lenyomva, vagy az j rekord felvtele ikonra kattintva vehetnk fel j rekordot. Az "id" mezt nem kell kitltennk, hiszen az automatikusan szmozdik. A tbbi mezbe az adattpusnak megfelel adatokat rhatunk. A mezk kztt a TAB billenty lenyomsval, vagy a megfelel mezre val egrkattintssal vlthatunk. Az utols rtk bersa utn clszer lenyomni az ENTER billentyt. Rekordok mdostshoz a mdostani kvnt mezn kattintsunk dupln, s rjuk fell a rgi rtket az jjal. Rekord trlshez kattintsunk jobb egrgombbal brmelyik mezjn, s vlasszuk a "Delete Record" opcit. A trlst erstsk meg a "Yes" gombra kattintva.

Rviden az SQL nyelvrl

Az SQL egy rvidts, jelentse "Structured Query Language", vagyis struktrlt lekrdez nyelv. Ma mr szabvnynak tekinthet, mgis van egy kis eltrs az egyes vltozatok kztt. Az alapvet parancsok s szintaktikjuk azonban minden esetben megegyeznek. Az SQL parancsokat mi elszr a MySQL CC-ben fogjuk gyakorolni, majd megnzzk, hogy PHP kdbl hogyan tudjuk ket futtatni. A ngy alapvet parancs a levlogats, a felvtel, a mdosts s a trls.
SQL parancs: levlogats

A legegyszerbb parancs, melynek legegyszerbb formja a kvetkez: SELECT * FROM tablanev A parancs futtatsa utn elnk trul az gynevezett eredmnytbla, melyben az ltalunk megjelenteni kvnt rekordokat ltjuk. A SELECT kulcsszval adjuk az adatbziskezel tudtra, hogy egy lekrdezst szeretnnk lefuttatni. A * (csillag) azt jelenti, hogy az eredmnytblban a rekordoknak az sszes mezjt ltni szeretnnk. Ha csak bizonyos mezkre vagyunk kvncsiak, akkor a * helyett a mezk neveit kell felsorolnunk, egymstl vesszvel elvlasztva. Ha pldul egy "emberek" nev tblbl szeretnnk az emberek nevt, letkort s lakcmt megjelenteni, az albbi parancsot kell kiadnunk: SELECT nev,eletkor,lakcim FROM emberek A mezk nevei (vagy a csillag) utn kvetkezik a FROM kulcssz, majd ezt kveti a tbla neve, amibl a rekordokat le szeretnnk krdezni. A lekrdezs eredmnytbljt klnbz felttelek megadsval szkthetjk. A feltteleket a WHERE kulcssz utn kell megadnunk. Pldul listzzuk ki azon rekordok sszes mezjt, ahol az letkor rtke kisebb mint 20: SELECT * FROM emberek WHERE eletkor<20 Ha tbb felttelt szeretnnk megadni, azokat logikai mveletekkel kapcsolhatjuk ssze. Felhasznlhat logikai mvelet az AND (s), az OR (vagy) s a NOT (nem). Vlogassuk ki pldul azokat a frfiakat, akik 20 vnl idsebbek, vagy letkoruk nem tbb mint 10: SELECT * FROM emberek WHERE neme='ferfi' AND (eletkor>20 OR NOT eletkor>10) Hogy egyrtelm legyen a logikai mveletek sorrendje, a felttelek megadsnl hasznljunk zrjeleket! Megadhatjuk azt is, hogy a felttelnek megfelel rekordokat milyen sorrendben

szeretnnk az eredmnytblban ltni. Ehhez a parancs vgn az ORDER BY zradkot kell hasznlnunk, mely utn fel kell sorolnunk azokat a mezket, amelyek szerint a sorbarendezst vgre szeretnnk hajtani. Tbb mez megadsa esetn a mezneveket vesszvel vlasztjuk el egymstl. Elszr rendezzk az embereket nv szerint nvekv sorrendbe: SELECT * FROM emberek ORDER BY nev Majd rendezzk ket nv szerint nvekv, azon bell letkor szerint nvekv sorrendbe (ez azt jelenti, hogy ha kett vagy tbb embernek ugyanaz a neve, ket letkor szerint fogjuk egyms utn rendezni): SELECT * FROM emberek ORDER BY nev,eletkor Ha egy mez szerint nem nvekv, hanem cskken sorrendben szeretnnk rendezni, a mez neve utn illesszk oda a DESC kulcsszt is. Pldul rendezznk nv szerint cskken, azon bell letkor szerint nvekv sorrendbe: SELECT * FROM emberek ORDER BY nev DESC,eletkor Az eddig megismert kulcsszavakat s zradkokat egytt is alkalmazhatjuk, ezltal j bonyolult lekrdezseket hozhatunk ltre: SELECT nev,eletkor FROM emberek WHERE neme='ferfi' AND (eletkor>20 OR NOT eletkor>10) ORDER BY nev DESC,lakhely,eletkor DESC A fenti parancsot gy foglalhatnnk szavakba: "Vlogassuk ki azokat a frfiakat, akik 20 vnl idsebbek, vagy letkoruk nem tbb mint 10. A felttelnek megfelel embereket rendezzk nv szerint cskken sorrendbe. Ha vannak azonos nev emberek, akkor rendezzk ket lakhely szerint nvekv sorrendbe. Elfordulhat, hogy tbb embernek ugyanaz a neve, s a lakhelyk is megegyezik. Ezeket az embereket rendezzk letkor szerint cskken sorrendbe. Az embereknek csak a nevre s az letkorra vagyunk kvncsiak, teht az eredmnytblban csak ezeket a mezket szeretnnk ltni."

You might also like