Programozás
Programozási nyelvek
Alacsony szintű nyelv:
Assembly
(Gépi kódú nyelv)
Magas szintű nyelvek:
BASIC; PASCAL; C; C++;
C#; JAVA stb.
Az alacsony szintű nyelveknél
minden gépi kódban van írva, nem kell fordítani. Ezért nagyon gyorsan lefut,
viszont a kód is nagyon hosszú!
A magas szintű nyelveknél
egyetlen parancs segítségével egy hosszabb assembly-rutint vagy egy kombinált
(assemblyben és valamilyen magas szintű nyelven megírt)
rutint hajtatunk létre!
Ingyenes programozási
nyelvek, melyek szinte minden operációs rendszer alatt képesek futni:
HTML Editorok (szerkesztő program)
segítségével kiváltható.
CCS
Javascript Kliens oldali nyelvek (nem tudnak a
kliens gépére írni).
Ajax
PHP Szerver
oldali nyelvek (a kliens gépére is tudnak írni, ami tilos!), ezért az
SQL értelmezés/végrehajtás
a szerveren történik.
Programozási nyelvek osztályozási szempontjai
Generációk szerint:
Első generáció:
-manuális
programozástechnika
-gépi kód, alacsonyszintű nyelvek használata
Második
generáció:
-magas szintű nyelvek
használata,
-strukturált programozástechnika megjelenése,
Harmadik
generáció:
- objektumorientált megközelítés
kialakulása
- objektu morientált nyelvek használata, kiegészítések, “ráépülő” nyelvek
kifejlődése
Negyedik
generáció (4GL):
- vizuális kezelőfelületű nyelvek
megjelenése
- eseményvezéreltség kialakulása
- az objektumorientáltság alapvető követelmény
Működés szerint
Procedurális nyelv, amelyben a
programozó adja meg az utasítások
végrehajtásának sorrendjét és mikéntjét. Bármely adatszerkezeten bármely nyelvi
utasítás végrehajtható a szintaktikai szabályoknak megfelelően.
Objektumorientált nyelv, amelyben az adatokat és a rajtuk végrehajtható
utasításokat egy egységként kezeljük. A programozó korlátozva van abban, hogy
milyen utasításokat hajthat végre az adatokon.
Eseményvezérelt nyelv, amely már nem lineáris szerkezetű, az utasítás
végrehajtása az objektumhoz tartozó eseményhez kötődik (az utasítás végrehajtás
során a programozó korlátozva van abban, hogy hogyan hajtathatja végre azt).
Szerkezet szerint
Az imperatív (utasításszerkezetű) nyelvek alapeszközei az utasítások és
a változók. A program szövege utasítássorozat, minden utasítás mögött gépi kód
áll. Minden program utasítássorozat, amely mögött több gépi utasítás áll.
Kötődnek a Neumann-architektúrához, általában fordítóprogramosak. Algoritmikus
nyelvek, a programban azt az algoritmust írom le, amelyet a gép végrehajt, és a
probléma megoldása így születik meg. A program a hatását a tár egyes területein
lévő értékeken fejti ki.
A deklaratív (leírásjellegű) nyelveknél nincs utasításfogalom, a
Neumannarchitektúrától távol áll. Nem algoritmikusak, a programban csak a
problémát fogalmazom meg, a megoldást nem, az algoritmus a rendszerbe van
beépítve. A tárhoz a programozónak kevés köze van, nem feladata a tár egyes
részeinek módosítása.
Alapdefiníciók
Információ: értelmezett adat,
értesülés, mértékegysége a bit, ami 1 vagy 0.
- Adat: A számítógépben jelsorozat formájában tárolt, kódolt információ-
Parancs: a számítógép számára adott közvetlen utasítás.
- Upgrade: átdolgozott verzió, továbbfejlesztett, bővített fu n
kciókkal.
- Update: frissített verzió, hibák javításával, program Újabb adatokkal
való feltöltése.
- Szintaktika: helyesírás, a szöveg összeállítására vonatkozó szabályok
összessége.
- Szemantika: nyelvtan,
nyelvhelyesség, a program működésére vonatkozó szabályok
összessége.
- Hivatkozási nyelv: szabvány, amely a szintaktikai és szemantikai
szabályokat adja meg, definiálja a nyelvet. Csak egy darab van belőle.
- Implementáció: A nyelv adott rendszeren belüli konkrét megvalósítása,
általában nem kompatibilis a hivatkozási nyelvvel.
- Compiler (fordító): a magas
szintű programozási nyelven írt programot lefordítja a gép számára érthető
formára, az egészet leértelmezi, és futtatható programot készít belőle.
(Pascal, ADA, Clipper).
- Interpreter (értelmező):
egy magas szintű programozási nyelven írt programot értelmez a gép számára. egy olyan program (ritkábban beépített hardver), ami képes
arra, hogy az általa felismert nyelven megfogalmazott utasításokat bemenő
adatként kezelje, és a futtató gép saját utasításkészletének megfelelő
utasítások sorozatává alakítsa át, majd ezeket a utasítás sorozatokat azonnal
futtassa is. (BASIC, LOGO).
Soronként hajtódik végre, az
első hibás utasításig.
Előnye:
könnyen javítható, könnyen átírható. Hátránya: lassú, könnyen lopható.
- Parser → utasítás értelmező.
.ccp-ből→
.exe, .java-ból→ .class (értelmező
kell hozzá).
- Absztrakció: azon
adatok és tulajdonságok kiválasztása, melyek egy feladat végrehajtásához Szükségesek
- Dekompozíció: a feladat részekre bontása.
- Alacsony szintű nyelv: az ember által nehezebben megfogalmazható,
nagyobb programozói munkát igénylő, gépközeli programozási nyelv. Az assembly
nyelv utasításai 3 részre oszthatóak:
- cím: az a memóriarekesz, amiben az adott utasítás található
- utasításkód: mnemonikok: a nyelv alapszavainak rövid, könnyen
megjegyezhető formái
- operandus: művelet elvégzéséhez szükséges adatot vagy címet
tartalmazza
- Assembler: program, mely az assembly-ben írt programot lefordítja a
gép számára érthető formára.
- Magas szintű nyelv: a programozó számára könnyebben megfogalmazható,
emberközelibb, bővebb utasításkészlettel rendelkező programnyelv. Hordozható,
viszonylag gépfüggetlen programok. Sok utasítással rendelkeznek, összetettebb
feladatok megvalósítására is képesek.(Pl. Pascal, C, Basic, Delphi, Clipper,
LOGO)
- Forrásprogram: maga a program egy adott programozási nyelven kódolva.
- Tárgyprogram: félig fordított kód (célkód), kisebb helyet foglal, a
hardver utasítások gépi kódját végleges formában tartalmazza, de a címek
átcímezhetők. Az object könyvtárból másolódnak hozzá programmodulok.
- Gépi kódú program: gépi kódú utasítás: a gép számára végrehajtható
utasítások sorozata.
- Szintaktikai hiba: egy programnyelv azon szabályainak megsértése,
amelyek az utasítások és adatok leírására vonatkoznak. Altalában elgépelés
okozza.
- Szemantikai hiba: logikailag értelmetlen művelet, az adatok tartalmi
hibájából és/vagy helytelen csoportosításából, hibás összefüggései ből
következő hiba.(tömbön túli indexelés).
- Programfejlesztés: a program elkészítésének munkafolyamata a felmerülő
problémától a kész, eladható termékig.
- Analízis: felmérjük a helyzetet: mire van szükség, mik a lehetőségek?
- Feladatspecifikáció: a feladat pontos megfogalmazása, az esetleges
képernyő és listatervekkel együtt.
- Fejlesztői dokumentáció: a program fejlesztését végigkísérő
dokumentációk összessége.
- Felhasználói dokumentáció: a program használatával kapcsolatos
tudnivalókat tartalmazza.
- Kódolás: a forrásprogram
elkészítése.
- Tesztelés: a hibák
felderítése.
- Szárazteszt: a programterv
gondolatban való ellenőrzése, kipróbálása.
- Felhasználóbarát: a program
szép, nem idegesítő, teljes mértékben szolgálja a fel használót.
A
forráskód: a
programozási nyelv parancsait, a parancsok paramétereit tartalmazza a megfelelő szintaktikával és szemantikával
megadva.
A forráskódnak
szintaktikailag és szemantikailag is helyesnek kell lennie.
Forráskód: tag = parancs.
<tag paraméter1=”értékX”
paraméter2=”értékY”>szöveg</tag>
-tól -ig.
SQL: Structured Query
Language
Free SQL: mySQL.
W3 Consorcium→ W3.org a
HTML, a CSS és a Javascript mind a szabványaik.
Az összes
eljárásorientált nyelv karakterisztikus egysége. Az újrafelhasználhatóság és a
procedurális absztrakció eszköze.
(Újrafelhasználhatóság: Ha a program
különböző részein ugyanaz az utasítássorozat fordul elő, akkor ki lehet emelni.
A kiemelés helyéről hivatkozva rá aktivizálhatom.
Procedurális absztrakció: Lehetőség van a kiemelt szövegrész
paraméterezésére, így nem csak egy tevékenység, hanem egy tevékenységcsoport
végrehajtására képes.)
Tartalmilag négy komponense van:
1. név Ez egy azonosító, ezért az alprogramot is deklarálni
kell.
2. formális
paraméterek (formális paraméterlista)
A
fejben található, általában kerek zárójelek között.
A
paraméterlistán szereplő nevek a törzsben különféle objektumok lehetnek:
változók, nevesített konstansok, állománynevek, más alprogramok nevei.
3. törzs
Az
implementációt tartalmazza. Felépítése:
[deklarációs utasítások] végrehajtható utasítások
4. környezet
A
globális változók együttese.
Szekvenciának nevezzük a sorban egymás után való utasítások
végrehajtását. Két fajta alprogram létezik, a nyelvek általában külön
alapszóval jelzik az eljárás vagy függvény fejében, hogy melyikről van szó:
§
függvény:
§
eljárás:
1. Eljárás
Hatását
paramétereinek, környezetének vagy mindkettőnek megváltoztatásával fejti ki.
Adattranszformációt hajt végre vagy tevékenységet végez.
2. Függvény
A
matematikai fogalmat hozza át, feladata 1 db érték meghatározása. Még egy
komponense van, a függvény által visszaadott érték (visszatérési érték) típusa.
Ezt a függvény neve hordozza, a fejben szerepel, a specifikáció része.
Befejezésével az értéket átadja: (paraméterátadás).
A
függvény feladata 1 db visszatérési érték meghatározása
Szelekció: megadott feltélek
alapján vérehajtott lekérdezés. Lehet egyirányú, vagy több irányú.
Elágazásnak nevezzük azt, ha egy algoritmus során elágazunk, de
továbbra is elöre megyünk.
Ciklusnak nevezzük azt, amikor elágazunk, és az algoritmus egy
előbbi sorára visszatérünk egy időre, amíg a megadott feltételt vagy
feltételeket ki nem elégítjük.
Az elöltesztelő ciklus tehát először megvizsgálja, hogy a feltétel
fennáll-e. Ha igen, akkor lefuttatja a ciklusmagot, és újból kezdődik; ha nem,
akkor a program a ciklus utáni ponton folytatódik, azaz a ciklusmag kimarad.
Lehetséges tehát, hogy az elöltesztelő ciklus egyszer sem fog lefutni.
Az
elöltesztelő ciklus tipikus példája az adatállományok beolvasása;
előfordulhat ugyanis, hogy az állomány üres, és ilyenkor nincs mit beolvasni.
Hasonló a helyzet a könyvtárak
listázásakor is, hiszen a könyvtárban nem biztos, hogy van állomány.
Az
elöltesztelő ciklus tipikus kulcsszava a while.
Hátultesztelő ciklus: Mivel a feltételvizsgálat a ciklusmag után áll, ezért
a hátultesztelő ciklus legalább egyszer mindenképpen lefut.
A
konkrét programnyelvi megvalósítástól függ, hogy a hátultesztelő ciklusban a
folytatás vagy a kilépés feltételét kell-e megadni. A ciklus az első esetben
addig fut, amíg a ciklusvégben megadott feltétel igaz (ennek tipikus kulcsszava
a while), a másik esetben pedig addig, amíg igazzá nem válik (tipikus
kulcsszava az until).
Jellemző
példa a hátultesztelő ciklusra az adatbevitel ellenőrzése. Tegyük fel, hogy
regisztrálni szeretnénk egy ingyenes postafiókot az interneten. A szerveren futó programnak
először ellenőriznie kell, hogy szabad-e még a válaszott azonosító, majd azt
is, hogy kitöltöttük-e az összes kötelező adatmezőt, és addig kell ismételnie
ezt a lépést, amíg az összes adat helyessé nem válik. Sok szolgáltató ezt egy
lépésben végzi el, vagyis először ki kell töltenünk az űrlapot, aztán tudjuk
meg, hogy szabad-e még az azonosító.
Az Internet struktúrája
Mind TCP/IP kapcsolatú.
Webes kommunikációs csatornák
ncore.cc/index.php
Fix opcionális:
Domain-név: Fájlnév:
Domain-név: a kiszolgáló IP-címének meghatározásához kell.
Fájlnév: a kért állomány nevét adja meg a kiszolgálón.
Az index.php egy forráskód?
A fájlban lévő hivatkozás
mindig a szerverre vonatkozik! Ami email-ben elküldhető, az mind hivatkozás. A
szerver értelmezi a PHP-s fájlokat, a PHP-s és SQL-es utasításokat végrehajtja,
majd az egész eredményét HTML-ben elküldi a kliensnek.
A legtöbb helyen használt Free szerver programnak, van
egy dedikált mappája, melynek neve lehet web; www vagy htdocs.
Amit a www; web; vagy htdocs mappába teszek, az
kívűlről elérhető. A kliens felől ezek a mappák látszódnak a gyökérkönyvtárnak.
A mysql portja: 3306.
Az Apache, alapértelmezetten
értelmezi a HTML-t, a CSS-t és a Javascript-et.
Ha viszont az Apache programba
PHP értelmezőt ágyaznak be, akkor a PHP-t először leértelmezi, majd HTML-be
küldi el.
Ha SQL nyelvezet van benne,
akkor a PHP értelmező (csak ez képes hozzá nyúlni) leértelmezi, és az eredményt
HTML-ben küldi vissza.
Melyik
programnyelv mire való?
HTML: szöveg, alapformázások;
CSS: design, formázás;
Javascript: akciók; alpvető dinamikus funkciók;
Ajax: Aszimmetrikus Javascipt
kiterjesztés. Kiépíti a kapcsolatot, így a változások miatt nem kell elhagyni
az oldalt.
PHP: Csak szerveren működő
script nyelv. Script: iterpretert használ.
SQL: Webes felületről nem
megszólítható adatbáziskezelő rendszer, de a kliensről a web-szerverbe
integrált PHP értelmezőn keresztül megszólítható.
Weblap
készítés:
A rossz weboldal hibái:
- rossz
színválasztás, ízléstelenség;
-
rendezetlenség;
- hibás
(vak) link;
- nem
odavaló tartalom;
- lassú.
Tervezési
folyamat:
A megfelelő környezet kialakítása:
Hardver: kiegészítő ezsközök beszerzése (webkamera,
projektor, kamera, digitális fényképezőgép)
Szoftver: az operációs rendszer (függhet az alkalmazó által preferált
képszerkesztő programtól) és egyéb szükséges alkalmazások, amelyek az
erőforrások elkészítéséhez szükségesek!
Szervernek Linuxot használunk, kliensnek inkább
Windowst.
Külső
erőforrások:
-
humán (emberi
segítség – team);
-
külső (idegen)
tulajdonú eszközök;
-
internet
(on-line; off-line kommunikációs eszközök)
Projekt előkészítése,
szervezése:
- tárgyalás a
megrendelővel (mire van szükség, szerződés);
- helyzetfelmérés:
(képesek vagyunk-e megcsinálni?);
- háttérinformációk
gyűjtése: (a cég, a helyszín és esetleges egyéb területek megismerése, hogy
biztos mindent jól értesz-e);
- erőforrás
igények felmérése (mire lesz szükséged, költségek?).
A projekt
idő- és költségvetés tervének elkészítése, árajánlat készítés.
- Mit, mikor és mennyiért!
A projekt
kivitelezése:
- Weblap elemek
összegyűjtése:
- szöveges
elem (tartalom, stílus, ki írja meg?);
- grafikai
elemek (statikus elemek);
- animáció
és multimédiás elemek;
- adatbázis
elemek (dinamikus elemek).
- kapcsolat
felvétel a megfelelő szakemberekkel (team összeállítása).
- weblap elemek
optimalizálása (a WEB-hez, az átlag felhasználókhoz):
- grafikus
konverzió (kép, animáció optimalizálása);
- hangok
konverziója (erőforrás igények)
- látványterv
készítés: az oldal sematikus felépítése, még valóságos tartalom nélkül.
- arculati
elemek készítése (logó, kép, fejléc, lábléc, méret, hely).
- űrlapok
tervezése.
-
sablonkészítés:
- a HTML,
mint alapvető nyelv;
- a CSS,
esztétikus megjelenés;
- a
Javascript, interaktivitás;
- PHP,
programozó nyelv;
- SQL,
adatbázis lekérdezés.
- algoritmusok
készítése – felmerülő problémák megoldása;
- adatformázás,
ellenőrzés;
- adatbevitel.
- FOLYAMATOS
TESZTELÉS és KAPCSOLATTARTÁS!
Projekt
adminisztráció:
-
Karbantartáshoz,
nyomon követés.
-
A meglévő
működőképes projekt folyamatos mentése, dokumentálása.
-
Feltöltés a
tárhelyre – tesztelés.
Szoftver
igény:
-
Forráskód
szerkesztő (NotePad++),
-
Képszerkesztő,
-
Animáció
szerkesztő (Flash),
-
Xara 3D,
-
Site Editor
-
Menüszerkesztő,
-
Outlook,
-
Böngésző,
Szerver program:
-
Apache – xampp
-
PHP.
Segéd
programok:
-
Media player,
winamp,
-
Videó szerkesztő
– Movie maker.
-
Fájlkezelő –
total commander,
-
Vírusirtók,
-
Író program –
nero.
Forráskód írása:
1) Az xampp-win32-1.7.0-installer program telepítése.
(php és mySQL)
2) Notepad++ (vagy más jegyzettömb) telepítése.
3) Home mappa c:\xampp\htdocs→ a htdocs mappa
tartalmának törlése.
4) Böngésző megnyitása: cím: localhost
Amit a jegyzettömbbe írok az a forráskód! (Szerkesztés: mentés -
index.html)
HTML: lapleíró nyelv.
Parancsok (tag):
Szintaktikailag és szemantikailag helyes:
<BR /> →
Soremelés (enter).
De lehet:
<BR>; <br>; <br
/>.
Ha egyben a parancs, záró parancs is, akkor zárójelet kell rakni
→ /.
Ha egy parancs hatókörre vonatkozik, akkor van egy nyitó, és egy záró
parancs is. → <B>hatókör</B>
<B>→
félkövér
<I>→ dőlt
<U>→
aláhúzás
<H1> --- <H6>→
(Header=címsor) sort emel, betűtípust vált, félkövérít és térközt rak.
A stílusok általában sort emelnek.
<FONT
face=”Arial”>szöveg</FONT> → Betűtípus.
<FONT
size=”7”>szöveg</FONT> → Betűméret.
<FONT
color=”pink”>szöveg</FONT> → Betűszín.
Kötegelve:
<FONT color=”red”
face=”Arial” size=”7”>szöveg</FONT>
Bekezdés:
<DIV
align=center>szöveg</DIV>
Sablon betűtípusok: Arial; Times; Courier; Script; Symbol.
Hexa színkód: # rrggbb → 00-tól, FF-ig.
Forrás: Az
eredmény:
<B>Mengyánné Kucsa Mária </B><font size="5"><BR/>
<I><font color="red">Medgyesegyháza</I></font><BR/>
<U>Bem utca. 3.</U><BR/><BR/>
<a href="kepek/oroszlan.jpg">Ez itt egy hivatkozás</A><BR/><BR/>
Az eredmény:
Ha a szövegre kattintunk, megjelenik a kép.
Kép beszúrása: A htdocs mappába kell bemásolni a használni kívánt
képet(ket).
A felhasználói képek kiterjesztései lehetnek:
- jpg: veszteségesen
tömörített, 16 millió színű, 32 bites színmélység.
- gif: több képkockából
álló mozgókép, 256 szín, 8 bites színmélység, melyből egy lehet átlátszó.
- png: egyesíti a jpg-t
és a gif-et, 16 millió szín, melyből 256 lehet átlátszó (átmenet), animációs.
- bmp: RAV
(veszteségmentes) tömörített, 16 millió szín, nincs átlátszóság, nincs animáció
– Windows.
Képbeszúrás: <IMG
src=”elérési útvonal” />
Méretezés: <IMG
width=”méret” /> (vízszintes) vagy
<IMG
height=”méret” /> (függőleges)
A kettő közül csak az egyiket használjuk (automatikusan
utána méretezi a másik paramétert), ha mindkettőt egyszerre használjuk, akkor
torzít.
Lehet még:
<IMG width=”%” />, de ezt valamihez képest méretezi pl.: ablak.
Szabályai:
1. Lehetőleg használjuk mind a”width” és a „height”
paramétert és számoljuk ki. Ha táblázatba rakjuk, úgy kell méretezni, hogy
kitöltse a cellát, mert így előre lefoglalja a kép helyét.
2. Ha egy teljes hátteret akarok az oldalon
megjeleníteni, akkor ne a képet kicsinyítsük, hanem inkább hivatkozást
készítsünk pl.: indexkép.
A Javascript és a HTML együtt kezeli a dokumentumot:
Érdemes a képnek nevet adni, hogy könnyebb
legyen megtalálni, azonosítani, hivatkozni rá később:
<IMG
name=”kep1” />
Hivatkozás (ANCHOR) készítése:
<A href=”http://www.google.hu”>szöveg</A>
→ href: hivatkozási referencia cím (hyper
reference)
A referencia cím lehet egy kép elérési helye is.
<A href=mailto:mengyanneria@gmail.com>Írj</A>
A felhasználó levelet küldhet a címre.
<A href=”cím”>szöveg< target /A>
Pl.: a kép új fülön jelenik meg.
3 féle hivatkozás (link) létezik:
- Dokumentumon belüli: <A
href=”#also”>szöveg</A> (az also néven definiált részhez ugrik) Párja:
<A name=”also”>
- Egy gépen belüli, de egy másik
erőforrásra hivatkozó (kép, videó, dokumentum), melynek nevét meg kell adjuk az
elérési úttal.
- Külső hivatkozás: ahol a
hivatkozott címet protokollal, teljes elérési úttal kell megadni.
A HTML sablonja (a dokumentum háttere):
<BODY bgcolor=”szín”> vagy <BODY background=”képnév.kit”>
A kettőt együtt érdemes megadni, mert ha a kép
törlődik (nem elérhető v.miért) vagy nagy méretű és lassan töltődik be, a háttérszín
áll a helyére (helyettesíti).
Forrás:
<a href="kepek/mokus.jpg">
<img
width="100" src="kepek/mokus.jpg"/></a>
<BR/> <BR/>
Katt a képre<BR/>
<BODY
background="kepek/kari.jpg"><BR/>
Ez a kép hivatkozásként
szolgál, melyre rákattintva, megjelenik a teljes méretű kép.
Eredmény:
Táblázatkészítés:
<TABLE> és a </TABLE> utasítások közé zárt
részt tekintjük egy táblázatnak.
<TR> és a </TR> a
táblázat sorának eleje, és vége.
<TH>, </TH> utasítás
vezeti be és választja el egymástól az oszlopfejléceket.
<TD> a táblázat
adatcellái, záró utasítása </TD>, de ez elhagyható.
<TABLE
BORDER="szám" a rácsozat szélessége.
ALIGN="hely" tábla
elhelyezkedését határozza meg, értékei (left, right, center).
COLSPEC="oszlopjellemzők"
egy oszlop igazítását és szélességét adja meg, értékei (pl.: L12 C24 R10)
UNITS="egység" a
számokhoz tartozó mértékegységet jelöli ki (en, relative – oszlop szélességhez -,
pixel).
NOWRAP a
cellák szövegének tördelését tiltja le.
CELLPADDING="pszám"
A cellák közötti távolságot adhatjuk
meg, pixelben. Alapértéke 0.
CELLSPACING="kszám"
A cellákon belül a cella tartalma és a
cella széle közötti távolságot definiálhatjuk, pixelben. Alapértéke 0.
BGCOLOR="színkód"
a táblázat háttérszínét határozza meg.
COLSPAN="szám":
Egyesít több egymással szomszédos cellát - vízszintesen.
ROWSPAN="szám": Egyesít több egymás alatti
cellát - függőlegesen.
ALIGN="hely": Igazítja a cellák tartalmát -
vízszintesen. Lehetséges értékei: left,
center, right, justify, decimal.
VALIGN="hely": Igazítja a cellák tartalmát -
függőlegesen. Lehetséges értékei: top, middle, bottom, baseline.
PADDING=”
SPACING=”
Példa:
<TABLE border="5"
align="center">
<CAPTION> A táblázat címe
</CAPTION>
<TR>
<TH
colspan="2"> Az 1.-2. oszlop közös fejléce
</TH>
<TD
align="center" colspan="5"><IMG
src="k12.gif" alt="Kép a cellában">
A
forrás: Az
eredmény:
<TABLE border="5">
<TR>
<TD>1</TD>
<TD>2</TD>
<TD>3
<TABLE border="5">
<TD>A</TD>
<TD>B</TD> <TR>
<TD>C</TD>
<TD>D</TD> </TR>
</TD>
</TABLE>
</TR>
<TR>
<TD>4</TD>
<TD>5</TD>
<TD>6</TD>
</TR>
</TABLE> <BR/>
A második táblázat forrás kódja:
<TABLE border="2"
cellspacing="5">
<TR>
<TD
width="50" bgcolor="66ccdd" rowspan="2">
</TD>
<TD
width="50" bgcolor="cccccc" > </TD>
<TD
width="50" bgcolor="66ccdd" rowspan="2">
</TD>
<TD
width="50" bgcolor="cccccc" > </TD>
<TD
width="50" bgcolor="55bbaa" >1</TD>
</TR>
<TR>
<TD
width="50" bgcolor="66ccdd" rowspan="2">
</TD>
<TD
width="50" bgcolor="66ccdd" rowspan="2">
</TD>
<TD
width="50" bgcolor="55bbaa" >2</TD>
</TR>
<TR>
<TD
width="50" bgcolor="cccccc" > </TD>
<TD
width="50" bgcolor="cccccc" > </TD>
<TD
width="50" bgcolor="55bbaa" >3</TD>
</TR>
<TR>
<TD
width="50" bgcolor="66ccdd" rowspan="2">
</TD>
<TD
width="50" bgcolor="cccccc" > </TD>
<TD
width="50" bgcolor="66ccdd" rowspan="2">
</TD>
<TD
width="50" bgcolor="cccccc" > </TD>
<TD
width="50" bgcolor="55bbaa" >4</TD>
</TR>
<TR>
<TD
width="50" bgcolor="66ccdd" rowspan="2">
</TD>
<TD
width="50" bgcolor="66ccdd" rowspan="2">
</TD>
<TD
width="50" bgcolor="55bbaa" >5</TD>
</TR>
<TR>
<TD
width="50" bgcolor="cccccc" > </TD>
<TD
width="50" bgcolor="cccccc" > </TD>
<TD
width="50" bgcolor="55bbaa" >6</TD>
</TR>
<TR>
<TD
width="50" bgcolor="66ccdd" rowspan="2"> </TD>
<TD
width="50" bgcolor="cccccc" > </TD>
<TD
width="50" bgcolor="66ccdd" rowspan="2">
</TD>
<TD
width="50" bgcolor="cccccc" > </TD>
<TD
width="50" bgcolor="55bbaa" >7</TD>
</TR>
<TR>
<TD
width="50" bgcolor="66ccdd" rowspan="2">
</TD>
<TD
width="50" bgcolor="66ccdd" rowspan="2">
</TD>
<TD
width="50" bgcolor="55bbaa" >8</TD>
</TR>
<TR>
<TD
width="50" bgcolor="cccccc" > </TD>
<TD
width="50" bgcolor="cccccc" > </TD>
<TD
width="50" bgcolor="55bbaa" >9</TD>
</TR>
</TABLE>
A
táblázat alkalmazásai:
<Center>
<H1> <I> <FONT color=#FFAAA0# >Pihenés!</FONT>
</I> </H1>
</Center>
<TABLE
border="0" align="center">
<TH colspan="2"></TH>
<TR>
<TH BGCOLOR="pink"
COLSPAN="2"> <H2> <B>
Itt
az ideje egy kis pihenésnek! </H2> </B> <BR/> </TH>
</TR>
<TR>
<TD
BGCOLOR="FFFFA0" valign="top" align="center"
width="250"> Most, hogy ilyen sokat dolgoztunk,<BR/> kellene
már pihenni is!</TH>
<TD ><img width="250"
src="kepek/kave.jpg"></TD>
</TR>
</TABLE>
Űrlapok: a HTML egyetlen lehetősége, hogy kapcsolatot tudjunk
tartani a felhasználó és a weboldal között, adatokat kérhetünk be a
felhasználótól, majd opcionális ellenőrzés után feldolgozhatjuk vagy
adatbázisban rögzíthetjük egy másik programozási nyelv segítségével
(Java-script, PHP).
A <FORM
METHOD="mód" ACTION="elérési_út/fájlnév.kit"> és a </FORM> utasítások zárják közre a
kitöltendő kérdőívet/űrlapot.
Attribútumai:
NAME: a megkülönböztetés miatt elnevezhetjük az
űrlapunkat.
ACTION: meghatározza a feldolgozást végző programot.
METHOD:
pedig a kitöltött űrlap továbbítási módját a feldolgozó programnak.
Lehetséges értékei:
GET - az URL-ben,
POST - adatcsomagban.
Az alapértelmezés a GET, ami
bizonyos veszélyeket rejt magában, mivel túlléphetjük az URL max. hosszát (255
karakter) illetve bárki elolvashatja, módosíthatja az URL tartalmát. A POST a
biztonságosabb mód.
<INPUT
NAME="név" TYPE="típus" ALIGN="hely">
utasítással határozható meg egy kitöltendő űrlapmező.
NAME
a mezőnév, amely alapján a feldolgozóprogram azonosítja a bevitt adatot.
TYPE
pedig az adattípus, melyet vár a beviteli mező.
Lehetséges típusok: TEXT - szöveg,
PASSWORD - jelszó (nem jelenik meg bevitelkor!), HIDDEN - rejtett (ez sem
jelenik meg), CHECKBOX - kapcsoló (több is kiválasztható egyszerre), RADIO -
kapcsoló (egyszerre csak egyet lehet kiválasztani), RANGE - numerikus adat, FILE
- csatolandó fájl, SUBMIT -adattovábbító gomb, RESET - inicializáló gomb,
BUTTON - egyéb nyomógomb.
- TEXT típusú mező esetén egy
további opció, a SIZE="méret" opció határozza meg a beviteli ablak
szélességét, a MAXLENGTH="érték" pedig a bevihető maximális
szöveghosszt.
-- A CHECKBOX és a RADIO
típusú mezők további paramétere lehet a CHECKED opció, mely bekapcsolja a
kapcsolót - alapértelmezésként.
-- RANGE típusú mező esetén
megadható az a tartomány, melybe a bevitt értéknek bele kell esnie, a
MAX="maximum" és a MIN="minimum" további opciókkal.
-- A FILE típusú mezőben
megadott fájl az ACCEPT kiegészítő opcióval megadott MIME módon csatolódik az
elküldendő kérdőívhez. (Megjegyzés: Egy Browse nyomógombbal támogatott
fájlkereső-ablakból lehet a fájlt kiválasztani.)
-- A SUBMIT és a RESET
gombokhoz tartozó kiegészítő opció a VALUE="felirat", amely a gombok
feliratát jelöli ki. Egyébként a SUBMIT gomb lenyomásának hatására küldi el az űrlapadatokat
a kérdőív a feldolgozó programnak, a RESET gomb lenyomása pedig az
alapértékekkel tölti fel a beviteli mezőket.
-- A IMAGE típussal
készíthetünk egy képből gombot. A hozzá tartozó kiegészítő opció SRC="elérési
út/kép név" segítségével adhatjuk meg a kép elérését.
Példa:
<CENTER><H1>Adatfelvételi
lap:</H1>
<FORM method="post" action="program.bin">
<INPUT TYPE="reset" VALUE="Alapértelmezés">
A forrás:
ŰRLAP:</font><BR/>
<form name="beviteli mező" action="feldolgoz.php" method="post">
Neved: <input size="20" type="text"><BR/>
Jelszó: <input size="20" type="password"><BR/>
<input type="submit" value="Nyomd meg"><input type="reset" value="Törlés"></form>
Az eredmény:
Példák:
A forrás:
<BR/>
<form
name="kozvelemeny" method="GET">
Neved: <input
name="nev" type="text" size="30"><BR/>
<BR/>
<!-- rádiógomb
szerkesztése/-->
Nemed: <BR/>
<input
type="radio" name="neme" value="ferfi">
Férfi<BR/>
<input
type="radio" name="neme" value="no"> Nő<BR/>
<BR/>
Az eredmény:
<!-- kérdőív
szerkesztése/-->
Jelöld meg melyik újságot
szeretnéd!<BR/><BR/>
<input type="checkbox" name="ujsag1"
value="pcw"> PC-WORD<BR/>
<input type="checkbox" name="ujsag2"
value="chip"> Chip Magazin<BR/>
<input type="checkbox" name="ujsag3"
value="cws"> Computer World<BR/>
<input type="checkbox" name="ujsag4"
value="cv"> CADvilág<BR/>
<input type="checkbox" name="ujsag5"
value="hvg"> HVG<BR/>
<input type="checkbox" name="ujsag6"
value="cp" checked="checked"> Computer
Panoráma<BR/>
<input type="checkbox" name="ujsag7"
value="gs"> Game Star<BR/>
<input type="submit"
value="Küldés"><BR/>
<BR/>
Az eredmény:
<!-- legördülő
lista/-->
Kedvenc
elfoglaltságod?<BR/>
<select name="elfoglaltsag"
size="1">
<option value="olvasas">
Olvasni</option><BR/>
<option value="tv">TV-t
nézni</option><BR/>
<option value="buli">
Bulizni</option><BR/>
<option value="mozi">
Mozizni</option><BR/>
<option value="baratok">Barátokkal
összejönni</option><BR/>
<option
value="utazas">Utazni</option><BR/>
<option
value="kirandulas">Kirándulni</option><BR/>
</select>
</form>
<form name="beviteli
mező" method="get">
Neved: <input size="20" type="text"
name="nev"><BR/>
Születési idő: <input size="20"
type="text" name="szev"><BR/>
<input type="submit" value="Nyomd
meg">
</form>
Az eredmény:
Az üzenő ablak készítése
(script):
A forrás:
<body
bgcolor="#ffffc0">
<script>
document.write("<H1>Szia,
Világ!</H1>");//ez a weboldalra íródik ki
//a document.write-ba HTML-t is
írhatunk "" vagy'' használatával
</script>
<BR/><BR/>
<!-- megjegyzés: a java script tanítása parancsra
/-->
<script>
function
kiir(s)
{
alert(s);
}
function
fokusz()
{
document.bevitelimezo.szev.focus();
//weboldal direkt hivatkozása
}
function
fokusz2()
{
document.bevitelimezo.nyomi.value="Küldés";
}
</script><BR/><BR/>
<form
name="bevitelimezo"
method="get">
Neved:
<input size="20" type="text"
name="nev"><BR/>
Születési idő:
<input size="20" type="text"
name="szev"><BR/>
<input
type="submit" value="Nyomdmeg" name="nyomi">
</form>
<!--
megjegyzés: a megtanult parancs /-->
<script>
var s =
3; //ez az érték íródik ki, üzenőablakra
kiir("Szia!")
s++; // az értékhez hozzáad egyet
kiir(s);
fokusz();
fokusz2();
</script>
És másképp:
<body
bgcolor="#ffffc0">
<script>
document.write("<H1>Szia,
Világ!</H1>");
</script>
<BR/><BR/>
<script>
function
kiir(s)
{
alert(s);
}
function
fokusz()
{
if(document.bevitelimezo.nev.value=="")
document.bevitelimezo.nev.focus();
else
document.bevitelimezo.szev.focus();
}
</script><BR/><BR/>
<form
name="bevitelimezo"
method="get">
Neved: <input size="20" value="R"
type="text" name="nev"><BR/><BR/>
Születési idő: <input size="20"
type="text" name="szev"><BR/>
<input type="submit" value="Nyomd
meg" name="nyomi">
</form>
<script>
fokusz();
</script>
A scriptek segítségével
mozgalmasabbá tehetjük, weboldalunkat.
Adatbázis készítése (mysql):
c:\xampp\mysql\bin>mysql -u root
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.1.30-community MySQL Community Server (GPL)
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> show databases; (Adatbázisok
lekérdezése)
mysql> create database movie; (Adatbázis
létrehozása)
Query OK, 1 row affected (0.02 sec)
mysql> drop database movie; (Adatbázis törlése,
ha szükséges)
mysql> use movie; (Adatbázis használata)
Database changed
mysql> create table movietbl (Adattábla létrehozása)
-> (
-> id int not null auto_increment,
-> cim varchar(30) not null,
-> mufaj varchar(15),
-> hossz int,
-> media varchar(15),
-> megjel date,
-> primary key(id),
-> unique id(id));
Query OK, 0 rows affected (0.03 sec)
mysql>
des movietbl; (Rontott
parancs!!!)
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near 'des m
ovietbl' at line 1
mysql> show tables; (Táblák
lekérdezése)
mysql>
drop table movietbl; (Tábla törlése,
ha szükséges)
mysql>
desc movietbl; (Így néz ki)
+--------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| cim | varchar(30) | NO | | NULL | |
| mufaj | varchar(15) | YES | | NULL | |
| hossz | int(11) | YES | | NULL | |
| media | varchar(15) | YES | | NULL | |
| megjel | date | YES | | NULL | |
+--------+-------------+------+-----+---------+----------------+
6 rows in set (0.06 sec)
mysql> status;
--------------
mysql Ver 14.14 Distrib 5.1.30, for Win32 (ia32)
Connection id: 1
Current database: movie
Current user: root@localhost
SSL: Not in use
Using delimiter: ;
Server version: 5.1.30-community MySQL Community Server (GPL)
Protocol version: 10
Connection: localhost via TCP/IP
Server characterset: latin1
Db characterset: latin1
Client characterset: latin1
Conn. characterset: latin1
TCP port: 3306
Uptime: 24 min 16 sec
Threads: 1 Questions: 11 Slow queries: 0 Opens: 16 Flush tables: 1 Open tab
les: 8 Queries per second avg: 0.7
--------------
(A tábla feltöltése adatokkal)
mysql> insert into movietbl values (1, 'E.T.', 'sci-fi', 115, 'DVD', '1983-12-22
');
Query OK, 1 row affected (0.01 sec)
mysql> insert into movietbl values (2, 'Motel', 'horror', 94, 'DVD', '2006-03-23
');
Query OK, 1 row affected (0.00 sec)
mysql> insert into movietbl values (3, 'Brian élete', 'komédia', 94, 'VHS', '197
9-08-17');
Query OK, 1 row affected (0.00 sec)
mysql>
select * for movietbl; (Rontott
parancs!!!)
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near 'movie
tbl' at line 1
mysql>
select * from movietbl; (A végeredmény)
+----+-------------+---------+-------+-------+------------+
| id | cim | mufaj | hossz | media | megjel |
+----+-------------+---------+-------+-------+------------+
| 1 | E.T. | sci-fi | 115 | DVD | 1983-12-22 |
| 2 | Motel | horror | 94 | DVD | 2006-03-23 |
| 3 | Brian 'lete | kom'dia | 94 | VHS | 1979-08-17 |
+----+-------------+---------+-------+-------+------------+
3 rows in set (0.00 sec)
mysql>
select * from movietbl where year(megjel)>=2000; (Lekérdezés)
+----+-------+--------+-------+-------+------------+
| id | cim | mufaj | hossz | media | megjel |
+----+-------+--------+-------+-------+------------+
| 2 | Motel | horror | 94 | DVD | 2006-03-23 |
+----+-------+--------+-------+-------+------------+
1 row in set (0.01 sec)
mysql> select dayofweek('1969-04-17') from movietbl;
+-------------------------+
| dayofweek('1969-04-17') |
+-------------------------+
| 5 |
| 5 |
| 5 |
+-------------------------+
3 rows in set (0.02 sec)
mysql> select * from movietbl where (media='DVD)' and (hossz>100);
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near '' at
line 1
mysql> select * from movietbl where (media='DVD') and (hossz>100);
+----+------+--------+-------+-------+------------+
| id | cim | mufaj | hossz | media | megjel |
+----+------+--------+-------+-------+------------+
| 1 | E.T. | sci-fi | 115 | DVD | 1983-12-22 |
+----+------+--------+-------+-------+------------+
1 row in set (0.00 sec)
Microsoft Windows XP [verziószám: 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.
C:\xampp\mysql\bin>mysql -u root → Belépés mysql-be.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.1.30-community MySQL Community Server (GPL)
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> create database konyvek; → Adatbázis létre hozása.
Query OK, 1 row affected (0.28 sec)
mysql> use konyvek; → Adatbázis használata.
Database changed
mysql> create table konyvektbl; → Nem kell pontos vessző!!
ERROR 1113 (42000): A table must have at least 1 column
mysql> create table konyvektbl → Adattábla létre hozása.
-> (
-> id int not
null auto increment, → Az auto_inrement így helyes!!
-> cim varchar(30) not null,
-> mufaj varchar(15),
-> szerzo varchar(20),
-> megjel date,
-> primary key(id),
-> unique id(id); → Hiányzik egy zárójel!!
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near 'auto
increment,
cim varchar(30) not null,
mufaj varchar(15),
szerzo varchar(20),' at line 3
mysql> create table konyvektbl
mysql> create table konyvektbl
Az id, cím, szerzo, stb. = a
mező neve. Az int, varchar, date, stb. = a
mező típusa. A not null = nem lehet üres. Auto increment = automatikusan
növekvő. Primery key = elsődleges kulcs. Unique = egyedi kulcs.
-> (
-> id int not null auto_increment, →
-> cim varchar(30) not null,
-> szerzo varchar(20),
-> mufaj varchar(15),
-> megjel date,
-> primary key(id),
-> unique id(id));
Query OK, 0 rows affected (0.22 sec)
mysql> desc konyvektbl; → Ellenőrzés.
+--------+--------------+-------+------+-----------+------------------+
| Field | Type | Null | Key | Default | Extra |
+--------+--------------+-------+------+-----------+------------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| cim | varchar(30) | NO | | NULL | |
| szerzo | varchar(20) | YES | | NULL | |
| mufaj | varchar(15) | YES | | NULL | |
| megjel | date | YES | | NULL | |
+--------+---------------+-------+-----+------------+------------------+
5 rows in set (0.22 sec)
mysql> insert into konyvektbl values (1, 'Könnyű álom', 'Vavyan Fable', 'Fantasy
', '1996-01-01',);
Az ékezetes betűk miatt hibát jelez!!
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near ')' at
line 1
mysql> insert into konyvektbl values (1, 'Konnyu alom', 'Vavyan Fable',
-> 'Fantasy',
'1996-01-01'); → Adattábla feltőltése.
Query OK, 1 row affected (0.06 sec)
mysql> insert into konyvektbl values (2, 'A szrinpok volgyeben', 'Leslie L. Lawr
ence', 'Krimi', '2007-01-01');
Query OK, 1 row affected (0.00 sec)
mysql> insert into konyvektbl values (2, 'Tuzliderc', 'Michael Mansfield', 'Kala
nd', '2000-01-01');
ERROR 1062 (23000): Duplicate entry '2' for key 'PRIMARY' → Már létező kulcs!!
mysql> insert into konyvektbl values (3, 'Tuzliderc', 'Michael Mansfield', 'Kala
nd', '2000-01-01');
Query OK, 1 row affected (0.00 sec)
mysql> select * from konyvektbl; → Adattábla lekérdezése.
+----+-------------------------+-----------------------+-----------+--------------+
| id | cim | szerzo | mufaj | megjel |
+----+-------------------------+------------------------+----------+--------------+
| 1 | Konnyu alom | Vavyan Fable | Fantasy | 1996-01-01 |
| 2 | A szrinpok volgyeben | Leslie L. Lawrence | Krimi | 2007-01-01 |
| 3 | Tuzliderc | Michael Mansfield | Kaland | 2000-01-01 |
+----+--------------------------+------------------------+----------+--------------+
3 rows in set (0.02 sec)
mysql> insert into konyvektbl values (4, 'Szadhuk', 'Leslie L. Lawrence', 'Krimi
', '2005-01-01');
Query OK, 1 row affected (0.00 sec)
mysql> insert into konyvektbl values (5, 'A fekete anya kigyoja', 'Leslie L. Law
rence', 'Krimi', '2004-01-01');
Query OK, 1 row affected (0.00 sec)
mysql> select * form konyvektbl order by szerzo; →Hibás parancs!!
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near 'form
konyvektbl order by szerzo' at line 1
mysql> select * from konyvektbl order by szerzo; → Lekérdezés szerző szerint, növekvő.
+----+-------------------------+------------------------+----------+------------+
| id | cim | szerzo | mufaj | megjel |
+----+-------------------------+------------------------+----------+------------+
| 2 | A szrinpok volgyeben | Leslie L. Lawrence | Krimi | 2007-01-01 |
| 4 | Szadhuk | Leslie L. Lawrence | Krimi | 2005-01-01 |
| 5 | A fekete anya kigyoja | Leslie L. Lawrence | Krimi | 2004-01-01 |
| 3 | Tuzliderc | Michael Mansfield | Kaland | 2000-01-01 |
| 1 | Konnyu alom | Vavyan Fable | Fantasy | 1996-01-01 |
+----+--------------------------+------------------------+----------+--------------+
5 rows in set (0.00 sec)
mysql> select * from konyvektbl order by date; →Nem létező hivatkozás!!
ERROR 1054 (42S22): Unknown column 'date' in 'order clause'
mysql> select * from konyvektbl order by megjel;
+----+--------------------------+-----------------------+---------+---------------+
| id | cim | szerzo | mufaj | megjel |
+----+--------------------------+-----------------------+---------+---------------+
| 1 | Konnyu alom | Vavyan Fable | Fantasy | 1996-01-01 |
| 3 | Tuzliderc | Michael Mansfield | Kaland | 2000-01-01 |
| 5 | A fekete anya kigyoja | Leslie L. Lawrence | Krimi | 2004-01-01 |
| 4 | Szadhuk | Leslie L. Lawrence | Krimi | 2005-01-01 |
| 2 | A szrinpok volgyeben | Leslie L. Lawrence | Krimi | 2007-01-01 |
+----+---------------------------+-----------------------+----------+--------------+
5 rows in set (0.00 sec)
mysql> select * from konyvektbl where megjel>2000;
+----+---------------------------+-----------------------+---------+------------+
| id | cim | szerzo | mufaj | megjel |
+----+---------------------------+-----------------------+---------+------------+
| 1 | Konnyu alom | Vavyan Fable | Fantasy | 1996-01-01 |
| 2 | A szrinpok volgyeben | Leslie L. Lawrence | Krimi | 2007-01-01 |
| 3 | Tuzliderc | Michael Mansfield | Kaland | 2000-01-01 |
| 4 | Szadhuk | Leslie L. Lawrence | Krimi | 2005-01-01 |
| 5 | A fekete anya kigyoja | Leslie L. Lawrence | Krimi | 2004-01-01 |
+----+---------------------------+-----------------------+----------+-------------+
5 rows in set, 1 warning (0.04 sec)
mysql> select * from konyvektbl where (megjel>2000);
+----+-------------------------+-----------------------+---------+--------------+
| id | cim | szerzo | mufaj | megjel |
+----+-------------------------+------------------------+---------+--------------+
| 1 | Konnyu alom | Vavyan Fable | Fantasy | 1996-01-01 |
| 2 | A szrinpok volgyeben | Leslie L. Lawrence | Krimi | 2007-01-01 |
| 3 | Tuzliderc | Michael Mansfield | Kaland | 2000-01-01 |
| 4 | Szadhuk | Leslie L. Lawrence | Krimi | 2005-01-01 |
| 5 | A fekete anya kigyoja | Leslie L. Lawrence | Krimi | 2004-01-01 |
+----+---------------------------+-----------------------+----------+--------------+
5 rows in set, 1 warning (0.00 sec)
mysql> select megjel from konyvektbl;
+------------+
| megjel |
+------------+
| 1996-01-01 |
| 2007-01-01 |
| 2000-01-01 |
| 2005-01-01 |
| 2004-01-01 |
+------------+
5 rows in set (0.01 sec)
mysql> select szerzo, cim from konyvektbl;
+------------------------+---------------------------+
| szerzo | cim |
+------------------------+---------------------------+
| Vavyan Fable | Konnyu alom |
| Leslie L. Lawrence | A szrinpok volgyeben |
| Michael Mansfield | Tuzliderc |
| Leslie L. Lawrence | Szadhuk |
| Leslie L. Lawrence | A fekete anya kigyoja |
+------------------------+----------------------------+
5 rows in set (0.00 sec)
mysql> select szerzo, cim from konyvektbl order by szerzo;
+-----------------------+---------------------------+
| szerzo | cim |
+-----------------------+---------------------------+
| Leslie L. Lawrence | A szrinpok volgyeben |
| Leslie L. Lawrence | Szadhuk |
| Leslie L. Lawrence | A fekete anya kigyoja |
| Michael Mansfield | Tuzliderc |
| Vavyan Fable | Konnyu alom |
+------------------------+---------------------------+
5 rows in set (0.00 sec)
mysql> select * from konyvektbl where (megjel<2000-01-01);
Empty set, 1 warning (0.00 sec)
mysql>exit; → Kilépés!
Lekérdezés adattáblából
mysql>use konyvektbl;
mysql> select * from konyvektbl; → teljes lekérdezés
+----+------------------------+----------------------+---------+------------+
| id | cim | szerzo | mufaj | megjel |
+----+------------------------+----------------------+---------+------------+
| 7 | Könnyű álom | Vavyan Fable | Fantasy | 1996-01-01 |
| 2 | A szrinpok volgyeben | Leslie L. Lawrence | Krimi | 2007-01-01 |
| 3 | Tuzliderc | Michael Mansfield | Kaland | 2000-01-01 |
| 4 | Szadhuk | Leslie L. Lawrence | Krimi | 2005-01-01 |
| 5 | A fekete anya kigyoja | Leslie L. Lawrence | Krimi | 2004-01-01 |
| 6 | Veszbejarat | Vavyan Fable | Krimi | 2008-01-01 |
| 11 | P howard | Az előretolt helyőrs | Regény | 1990-01-01 |
| 12 | A szőke ciklon | P howard | Regény | 0000-00-00 |
| 13 | Az ellopott futár | P howard | Regény | 0000-00-00 |
| 14 | A csontbrigád | P howard | Regény | 0000-00-00 |
| 15 | Az előretolt helyőrség | P howard | Regény | 1990-01-01 |
+----+------------------------+----------------------+---------+------------+
11 rows in set (0.01 sec)
mysql> delete from konyvektbl where id=11; →sor törlése a táblából
Query OK, 1 row affected (0.01 sec)
mysql> update szemely set fizetes=fizetes*1.2 where fizetes<100000; → rekordok módosítása egy táblában, a
szemely=táblanév, a fizetes=egy mezőnév
mysql> select * from konyvektbl;
+----+------------------------+--------------------+---------+------------+
| id | cim | szerzo | mufaj | megjel |
+----+------------------------+--------------------+---------+------------+
| 7 | Könnyű álom | Vavyan Fable | Fantasy | 1996-01-01 |
| 2 | A szrinpok volgyeben | Leslie L. Lawrence | Krimi | 2007-01-01 |
| 3 | Tuzliderc | Michael Mansfield | Kaland | 2000-01-01 |
| 4 | Szadhuk | Leslie L. Lawrence | Krimi | 2005-01-01 |
| 5 | A fekete anya kigyoja | Leslie L. Lawrence | Krimi | 2004-01-01 |
| 6 | Veszbejarat | Vavyan Fable | Krimi | 2008-01-01 |
| 12 | A szőke ciklon | P howard | Regény | 0000-00-00 |
| 13 | Az ellopott futár | P howard | Regény | 0000-00-00 |
| 14 | A csontbrigád | P howard | Regény | 0000-00-00 |
| 15 | Az előretolt helyőrség | P howard | Regény | 1990-01-01 |
+----+------------------------+--------------------+---------+------------+
10 rows in set (0.00 sec)
mysql> select cim from konyvektbl order by cim abc; →ez hülyeség!!
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near 'abc'
at line 1
mysql> select cim from konyvektbl order by cim desc; →cím lekérése abc sorrendben visszafelé
+------------------------+
| cim |
+------------------------+
| Veszbejarat |
| Tuzliderc |
| Szadhuk |
| Könnyű álom |
| Az előretolt helyőrség |
| Az ellopott futár |
| A szrinpok volgyeben |
| A szőke ciklon |
| A fekete anya kigyoja |
| A csontbrigád |
+------------------------+
10 rows in set (0.00 sec)
mysql> select cim from konyvektbl order by cim asc; → cím lekérése abc sorrendben
+------------------------+
| cim |
+------------------------+
| A csontbrigád |
| A fekete anya kigyoja |
| A szőke ciklon |
| A szrinpok volgyeben |
| Az ellopott futár |
| Az előretolt helyőrség |
| Könnyű álom |
| Szadhuk |
| Tuzliderc |
| Veszbejarat |
+------------------------+
10 rows in set (0.00 sec)
mysql> select cim, szerzo from konyvektbl order by cim asc; → cím és szerző lekérése abc sorrendben
+------------------------+--------------------+
| cim | szerzo |
+------------------------+--------------------+
| A csontbrigád | P howard |
| A fekete anya kigyoja | Leslie L. Lawrence |
| A szőke ciklon | P howard |
| A szrinpok volgyeben | Leslie L. Lawrence |
| Az ellopott futár | P howard |
| Az előretolt helyőrség | P howard |
| Könnyű álom | Vavyan Fable |
| Szadhuk | Leslie L. Lawrence |
| Tuzliderc | Michael Mansfield |
| Veszbejarat | Vavyan Fable |
+------------------------+--------------------+
10 rows in set (0.01 sec)
mysql> select cim, szerzo from konyvektbl where szerzo="P howard";→ cím és szerző lekérése ha a szerző=P howard
+------------------------+----------+
| cim | szerzo |
+------------------------+----------+
| A szőke ciklon | P howard |
| Az ellopott futár | P howard |
| A csontbrigád | P howard |
| Az előretolt helyőrség | P howard |
+------------------------+----------+
4 rows in set (0.02 sec)
mysql> select cim, szerzo from konyvektbl where szerzo="P howard" order by cim asc; → cím és szerző lekérése ha a szerző=P howard abc sorrendben
+------------------------+----------+
| cim | szerzo |
+------------------------+----------+
| A csontbrigád | P howard |
| A szőke ciklon | P howard |
| Az ellopott futár | P howard |
| Az előretolt helyőrség | P howard |
+------------------------+----------+
4 rows in set (0.00 sec)
mysql> select cim, szerzo from konyvektbl where szerzo like "P%" order by cim asc;→ cím és szerző lekérése ha a szerző neve P betűvel kezdődik, abc sorrendben
+------------------------+----------+
| cim | szerzo |
+------------------------+----------+
| A csontbrigád | P howard |
| A szőke ciklon | P howard |
| Az ellopott futár | P howard |
| Az előretolt helyőrség | P howard |
+------------------------+----------+
4 rows in set (0.03 sec)
mysql> select cim, szerzo from konyvektbl where szerzo like "V%" order by cim asc; ;→ cím és szerző lekérése ha a szerző neve V betűvel kezdődik, abc sorrendben
+-------------+--------------+
| cim | szerzo |
+-------------+--------------+
| Könnyű álom | Vavyan Fable |
| Veszbejarat | Vavyan Fable |
+-------------+--------------+
2 rows in set (0.00 sec)
mysql> select * from konyvektbl where (megjel>1999) and (szerzo like "L%");;→ minden lekérése ha a szerző neve L betűvel kezdődik, és a megjelenés dátuma több mint 1999
+----+-----------------------+--------------------+-------+------------+
| id | cim | szerzo | mufaj | megjel |
+----+-----------------------+--------------------+-------+------------+
| 2 | A szrinpok volgyeben | Leslie L. Lawrence | Krimi | 2007-01-01 |
| 4 | Szadhuk | Leslie L. Lawrence | Krimi | 2005-01-01 |
| 5 | A fekete anya kigyoja | Leslie L. Lawrence | Krimi | 2004-01-01 |
+----+-----------------------+--------------------+-------+------------+
3 rows in set, 1 warning (0.10 sec)
mysql> select * from konyvektbl where szerzo order by megjel asc; →kimaradt a szerző meghatározása
Empty set (0.00 sec)
mysql> select * from konyvektbl where szerzo like "l%" order by megjel asc; %");;→ minden lekérése ha a szerző neve L betűvel kezdődik dátum szerint növekvőbe
+----+-----------------------+--------------------+-------+------------+
| id | cim | szerzo | mufaj | megjel |
+----+-----------------------+--------------------+-------+------------+
| 5 | A fekete anya kigyoja | Leslie L. Lawrence | Krimi | 2004-01-01 |
| 4 | Szadhuk | Leslie L. Lawrence | Krimi | 2005-01-01 |
| 2 | A szrinpok volgyeben | Leslie L. Lawrence | Krimi | 2007-01-01 |
+----+-----------------------+--------------------+-------+------------+
3 rows in set (0.00 sec)
mysql> select * from konyvektbl where megjel like "%__-__";→ lövésem sincs mi változott!!
+----+------------------------+--------------------+---------+------------+
| id | cim | szerzo | mufaj | megjel |
+----+------------------------+--------------------+---------+------------+
| 7 | Könnyű álom | Vavyan Fable | Fantasy | 1996-01-01 |
| 2 | A szrinpok volgyeben | Leslie L. Lawrence | Krimi | 2007-01-01 |
| 3 | Tuzliderc | Michael Mansfield | Kaland | 2000-01-01 |
| 4 | Szadhuk | Leslie L. Lawrence | Krimi | 2005-01-01 |
| 5 | A fekete anya kigyoja | Leslie L. Lawrence | Krimi | 2004-01-01 |
| 6 | Veszbejarat | Vavyan Fable | Krimi | 2008-01-01 |
| 12 | A szőke ciklon | P howard | Regény | 0000-00-00 |
| 13 | Az ellopott futár | P howard | Regény | 0000-00-00 |
| 14 | A csontbrigád | P howard | Regény | 0000-00-00 |
| 15 | Az előretolt helyőrség | P howard | Regény | 1990-01-01 |
+----+------------------------+--------------------+---------+------------+
10 rows in set, 1 warning (0.00 sec)
mysql>exit;
PHP, HTML, Script
• Változók
fogalma:
– egy érték
eltárolására, megjegyzésére szolgál (hely a memóriában),
– szabadon
módosítható.
• Változók
típusa: meghatározza az eltárolható értéket
– egész szám (1,
2, 4 bájt): Byte, Integer, Long
– valós szám (4,
8, 8 bájtos fixpontos): Single, Double,
Currency
<H1>Hello
World!</H1>
<?php
$p=3; →változó
$l=2; →
változó
echo $p / $l; →
kiíratás
?>
Helyes PHP szintaxis:
<H1>Hello
World!</H1>
<?php
$a=1971;
$ki="Te ".(2009-$a)." éves vagy"; →változó használata
echo $ki;
?>
Nem helyes:
<H1>Hello
World!</H1>
<?php
$a=1971;
$ki="Te ",2009-$a," éves vagy";
echo $ki;
?>
Helyes:
<H1>Hello
World!</H1>
<?php
$a=1971;
$ki="Te ".(2009-$a)." éves vagy";
echo $ki;
echo "<BR/>És $a-ben születtél";
?>
Eredmény:
Te 38 éves vagy
És 1971-ben születtél
Helytelen:
<H1>Hello
World!</H1>
<?php
$a=1971;
$ki="Te ".(2009-$a)." éves vagy";
echo $ki;
echo '<BR/>És $a-ben születtél'; → idézőjel kell
?>
Eredmény:
Te 38 éves vagy
És $a-ben születtél
Az aposztrof és az idézőjel
használata:
<H1>Hello
World!</H1>
<?php
$a=1971;
$ki="Te ".(2009-$a)." éves vagy";
echo $ki;
echo "<BR/>És $a-ben születtél";
echo '<BR/>A $a értéke '."$a".".";
?>
Eredmény:
Te 38 éves vagy
És 1971-ben születtél
A $a értéke 1971.
Többféle megoldás:
<?php
echo "<BR/>";
$p=3;
$l=2;
echo 'Petinek '.$p.' forintja, ';
echo 'Lacinak '.$l.' forintja van, ';
echo 'Összesen '.($p + $l ).' forintot költhetnek.';
?>
Eredmény:
Petinek 3 forintja, Lacinak 2
forintja van, Összesen 5 forintot költhetnek.
Másik megoldás:
<?php
echo "<BR/>";
$p=3;
$l=2;
echo "Petinek $p forintja, Lacinak $l forintja van.
Összesen "
.($p+$l).
" forintot költhetnek.";
?>
Magyar ékezetes betűinek kódolásai |
|||||
Jel |
ESCAPE |
ISO-kód |
Jel |
ESCAPE |
ISO-kód |
Á |
Á |
Á |
á |
á |
á |
É |
É |
É |
é |
é |
é |
Í |
Í |
Í |
í |
í |
í |
Ó |
Ó |
Ó |
ó |
ó |
ó |
Ö |
Õ |
Ô |
ö |
õ |
ô |
Ő |
Ö |
Ö |
ő |
ö |
ö |
Ú |
Ú |
Ú |
ú |
ú |
ú |
Ü |
Û |
Û |
ü |
û |
û |
Ű |
Ü |
Ü |
ű |
ü |
ü |
Néhány speciális jel és kódjaik |
|||||||
Elnevezés |
Jel |
ESC |
ISO |
Elnevezés |
Jel |
ESC |
ISO |
Tabulátor |
|
	 |
|
Soremelés |
|
|
|
Szóköz |
|
  |
|
Felkiáltójel |
! |
! |
! |
Idézõjel |
” |
" |
" |
Számjel |
# |
# |
# |
Dollárjel |
$ |
$ |
$ |
Százalékjel |
% |
% |
% |
Angol és jel |
& |
& |
& |
Aposztróf |
’ |
' |
& |
Bal zárójel |
( |
( |
( |
Jobb zárójel |
) |
) |
) |
Aszteriszk |
* |
* |
* |
Pluszjel |
+ |
+ |
+ |
Vesszõ |
, |
, |
, |
Kötõjel |
- |
- |
- |
Pont |
. |
. |
. |
Perjel |
/ |
/ |
/ |
Nullás |
0 |
0 |
0 |
Egyes |
1 |
1 |
1 |
Kettes |
2 |
2 |
2 |
Hármas |
3 |
3 |
3 |
Négyes |
4 |
4 |
4 |
Ötös |
5 |
5 |
5 |
Hatos |
6 |
6 |
6 |
Hetes |
7 |
7 |
7 |
Nyolcas |
8 |
8 |
8 |
Kilences |
9 |
9 |
9 |
Kettõspont |
: |
: |
: |
Pontosvesszõ |
; |
; |
; |
Kisebb jel |
< |
< |
< |
Egyenlõségjel |
= |
= |
= |
Nagyobb jel |
> |
> |
> |
Kérdõjel |
? |
? |
? |
Kukac |
@ |
@ |
@ |
Bal zárójel |
[ |
[ |
[ |
Visszaper jel |
\ |
\ |
\ |
Jobb zárójel |
] |
] |
] |
Hatványjel |
^ |
^ |
^ |
Aláhúzás |
_ |
_ |
_ |
Aposztrof |
’ |
` |
’ |
Bal kapocs |
{ |
{ |
{ |
Függõleges |
| |
| |
| |
Jobb kapocs |
} |
} |
} |
Tilde jel |
~ |
~ |
~ |
Alsó aposztrof |
‚ |
‚ |
|
Alsó idézõjel |
„ |
„ |
|
Kereszt |
† |
† |
|
Kettõs kereszt |
‡ |
‡ |
|
Ezrelék |
‰ |
‰ |
|
Felsõ
vesszõ |
’ |
‘ |
|
Felsõ vesszõ |
’ |
’ |
|
Kettõs vesszõ |
’’ |
“ |
|
Kettõs vesszõ |
’’ |
” |
|
Szorzás jel |
• |
• |
|
Mínusz elõjel |
- |
– |
|
Kivonás jel |
- |
— |
|
Trade Mark |
™ |
™ |
|
Cent jele |
c |
¢ |
¢ |
Font jele |
L |
£ |
£ |
Csõvezeték jel |
¦ |
¦ |
¦ |
Paragrafus jel |
§ |
§ |
§ |
Umlaut |
¨ |
¨ |
¨ |
Copyright |
© |
© |
© |
Bal tört idézet |
« |
« |
« |
Lágy kötõjel |
|
­ |
­ |
Registered TM |
® |
® |
® |
Fok jele |
° |
° |
° |
Plusz-mínusz |
± |
± |
± |
Ékezet |
´ |
´ |
´ |
Mikro |
µ |
µ |
µ |
Bekezdés vége |
¶ |
¶ |
¶ |
Középen pont |
· |
· |
· |
Jobb tört idézet |
» |
» |
» |
Szorzás kereszt |
× |
× |
|
Scharfes s |
ß |
ß |
ß |
Osztás jel |
÷ |
÷ |
|
|
|
|
|
Karakter formázás
•
<b>félkövér</b>
•
<i>dőlt</i>
•
<u>aláhúzott</u>
•
<s>áthúzott</s>
•
<em>kiemelt</em>
•
<cite>idézet</cite>
•
<strong>kiemelés</strong>
•
<big>nagyméretű</big>
•
<small>kisméretű</small>
•
<sub>alsó
index</sub>
•
<sup>felső
index</sup>
•
<blink>villogó</blink>
Címszintek felépítése:
•
<BANNER>címszalag</BANNER>
•
<H1
align="left">Legfelső szintű címsor</H1>
•
<H2
align="center">2. szintű alcímsor</H2>
•
<H3
align="right">3. szintű alcímsor</H3>
•
<H4
nowrap>Negyedik szintű alcímsor</H4>
•
<DIV
align="center">szakasz</DIV>
Bekezdések felépítése:
•
<p>alapértelmezett
bekezdés</p>
•
<p
align=hely>igazított bekezdés</p>
hely: left, center,
right, justify
•
<p
nowrap>tördelés tiltása</p>
•
sortörés elem,
nem új bekezdés: <br>
Felsorolás:
•
<ul> felsorolás kezdete
•
<li>szöveg első sor
•
<li>szöveg második sor
•
<ul><li>szöveg második szint
…
•
</ul></ul> felsorolás vége
•
<ul
type=„típus”> felsorolás elem beállítása
típus: circle, disc, square
•
<ul
src=„fájlnév.kit"> felsorolás elem beállítása
•
<li> -nek
nincs záró tag-je!
Mysql és PHP
Ha elkészült adatbázisunkhoz
PHP-ben függvényeket készítünk, könnyebben kezelhető lesz az adatbázisunk.
Így kapcsolódhatunk az adatbázishoz:
Unit.inc
<?php
$host =
"localhost"; A szerver ahol az adatbázis van.
$user =
"root"; A felhasználó.
$pass =
""; A felhasználó jelszava.
$adatbazis
= "konyvek"; Az adatbázis neve.
$tabla =
"konyvektbl"; Az adattábla neve.
$CID =
@mysql_connect($host, $user, $pass) or die ("Rossz változót adtál
meg!".mysql_error()); Hibaüzenet.
mysql_select_db($adatbazis, $CID) or die ("Nem ez a
megfelelő adatbázis");
Hibaüzenet.
?>
Most már dolgozhatunk is az adattáblánkkal.
Így jeleníthető meg az adattábla a böngészőben:
Index.php
<HEAD>
<LINK REL=STYLESHEET TYPE="Text/CSS"
HREF="style.css">
<meta http-equiv="Content-Type"
content="text/html; charset=iso-8859-2">
</HEAD>
<?php
$azon = $_GET["azonosító"];
include_once("unit.inc");
$query = "select * from $tabla";
$eredm = mysql_query($query, $CID);
echo "<BODY bgcolor='daa38b'>";
echo "<H1><P align='center'>Könyveink</P></H1>";
echo "<P align=center>";
echo mysql_num_rows($eredm). " sorod van.";
echo "</P>";
echo "<TABLE border=2 align='center'>";
echo"
<TR><TD><B>Azonosító</B></TD><TD><B>Cím</B>
</TD><TD><B>Részletek</B></TD></TR>";
while ($sor = mysql_fetch_array($eredm, MYSQL_ASSOC))
{ (A while ciklus esetén, amíg
feltétele igaz, a hozzá tartozó programrész újból és újból végrehajtódik. A
programrészen belül általában megváltoztatunk valamit, ami hatással lesz a
while feltételére; ha ezt nem tesszük meg, a ciklusunk a végtelenségig futni
fog. Hasonló az „if” ciklushoz.)
echo "<TR>";
echo "<TD
width='80'>".$sor[id].".</TD>";
echo "<TD
width='80'>".$sor[cim].".</TD>";
echo "<TD width='80'><a
href='listazas.php?azonosito=",$sor["id"]."'>Részletek...</a></TD>";
echo "</TR>";
}
echo "</TABLE>";
?>
Listázás: (http://localhost/listazas.php?azonosito=1)
<HEAD>
<LINK REL=STYLESHEET TYPE="Text/CSS"
HREF="style.css">
<meta http-equiv="Content-Type"
content="text/html; charset=iso-8859-2">
</HEAD>
<?php
echo "<BODY bgcolor='daa38b'>"; (echo= végrehajtás, php-n belül így használhatom a HTML
nyelvet.)
$azon = $_GET["azonosito"];
//if ($azon==NULL)
die ("Nincs azonosító!"); //ha hibás, vagy nincs azonosító, akkor nem futtatja le a
keresést, és hiba üzenetet küld
if (!isset($azon) || ($azon<1)) die ("Nincs, vagy hibás az azonosító!");//Ugyanaz mint az előző, de inkább
ezt használjuk
// || ($azon<1) ez a rész az érték nélküli
azonosítót szüri ki
include_once("unit.inc");
$query = "select * from $tabla where id=$azon";//mysql lekérdezés
//die($query); ez a parancs kírja hogy mit akarok lekérdezni ( futtatás előtti
ellenőrzés)
$eredm = mysql_query($query, $CID); (GET metódusú lekérdezések (query
string)
if (mysql_num_rows($eredm)==0) die ("Nincs találat!");
//echo mysql_num_rows($eredm). " sorod van.";//Kiírja, hogy hány sora van
a táblázatomnak
echo "<BR/><BR/>";
echo "<TABLE border=2 align='center'>";
echo
"<TR><TD><B>Id</B></TD><P
align='center'>Könyv </P><TD><B>Cím</B></TD>
<TD><B>Szerző</B></TD>
<TD><B>Műfaj</B></TD>
<TD><B>Megjelenés</B></TD></TR>";
$sor = mysql_fetch_array($eredm, MYSQL_ASSOC);//tömböt készítek a sorból (a
következő sorból) (Az array() függvény akkor hasznos, ha egyszerre több értéket
szeretnénk egy tömbhöz rendelni.
echo "<TR>";
echo "<TD
width='80'>".$sor["id"].".</TD>";
echo "<TD
width='80'>".$sor["cim"].".</TD>";
echo "<TD
width='80'>".$sor["szerzo"].".</TD>";
echo "<TD
width='80'>".$sor["mufaj"].".</TD>";
echo "<TD align='center'
width='80'>".$sor["megjel"].".</TD>";
echo "</TR>";
echo "</TABLE>";
Törlés:
<HEAD>
<LINK REL=STYLESHEET TYPE="Text/CSS" HREF="style.css">
<meta http-equiv="Content-Type"
content="text/html; charset=iso-8859-2">
</HEAD>
<?php
$azon = $_GET["azonosito"]; (a METHOD a kitöltött űrlap továbbítási módját határozza meg, a
feldolgozó programnak. Lehetséges értékei:
GET - az URL-ben, POST -
adatcsomagban.)
if (!isset($azon) || ($azon<1)) die ("Nincs, vagy hibás az
azonosító!");
(„IF” Feltétel, és a feltétel teljesülése
vagy nem teljesülése esetén végrehajtandó parancs. ”DIE”)
include_once("unit.inc"); (az adatbázis meghatározása: utalás a "unit.inc" fájlra.)
$query = "select * from $tabla where id=$azon";//leválogatás, lekérdezés
$res = mysql_query ($query, $CID);
if (mysql_num_rows($res)>0)
{
$query = "delete from $tabla where id=$azon";//törli a recordot
//die($query); //ezzel akadályozom meg,hogy az előző parancs
végrehajtódjon
$res = mysql_query($query, $CID); // res=eredmény
echo "A művelet sikeres";
} else
echo "Nem találtam a feltételnek megfelelő
rekordot";//újabb
rákeresés estén írja ki
?>
Felvitel:
<?php
if (isset ($_GET["gomb"])) //a gomb akkor veszi fel az értékét (”felvitel”) ha 2x lett meghívva
{
include_once("unit.inc"); //kapcsolódás az adat szerverhez és az adatbázishoz
$cim = $_GET["cim"]; if (empty($cim))
die ("Nem adtál filmcímet!");
$szerzo = $_GET["szerzo"];
$mufaj = $_GET["mufaj"];
$megjel = $_GET["megjel"];
$query = "insert into $tabla (cim, szerzo,
mufaj, megjel ) VALUES
('$cim', '$szerzo', '$mufaj', '$megjel')";
//die ($query);
$eredm = mysql_query ($query, $CID);
die ("A felvitel megtörtént");
}
?>
<BR/>
<HTML>
<HEAD>
<LINK REL=STYLESHEET TYPE="Text/CSS"
HREF="style.css">
<meta http-equiv="Content-Type"
content="text/html; charset=iso-8859-2">
</HEAD>
<FORM
name="urlap" method="GET">
<TABLE>
<TR>
<TD colspan="2"
align="center" >
<B><FONT
color="335fa6"
size="6">KÖNYVEINK</B></FONT></TD>
</TR>
<TR>
<TD> <B><FONT
size="5">Cím*:</FONT></B></TD>
<TD> <INPUT type="text"
name="cim" /> </TD>
</TR>
<TR>
<TD> <B><FONT
size="5">Szerző: <BR/></FONT></B></TD>
<TD> <INPUT type="text"
name="szerzo" /> </TD>
</TR>
<TR>
<TD> <B><FONT
size="5">Műfaj: <BR/></FONT></B></TD>
<TD> <INPUT type="text"
name="mufaj" /> </TD>
</TR>
<TR>
<TD>
<B><FONT size="5">Megjelenés:
<BR/></FONT></B></TD>
<TD> <INPUT type="text"
name="megjel" /> </TD>
</TR>
</TR>
<TD colspan="2" align= "center" >
<INPUT type="submit"
name="gomb" value="Felvitel" /></TD>
</TR>
</TABLE>
</FORM>
</HTML>
Módosítás:
<HEAD>
<LINK REL=STYLESHEET TYPE="Text/CSS"
HREF="style.css">
<meta http-equiv="Content-Type"
content="text/html; charset=iso-8859-2">
</HEAD>
<?php
$azon = $_GET["azonosito"];
//if ($azon==NULL)
die ("Nincs azonosító!"); //ha hibás, vagy nincs azonosító, akkor nem futtatja le a keresést, és
hiba üzenetet küld
if (!isset($azon) || ($azon<1)) die ("Nincs, vagy hibás az
azonosító!"); //Ugyanaz
mint az előző, de inkább ezt használjuk
// || ($azon<1) ez a rész az érték nélküli
azonosítót szűri ki
include_once("unit.inc");
$qery = "select * from $tabla where id=$azon"; //mysql lekérdezés
//die($query);
ez a parancs kírja hogy mit akarok lekérdezni ( futtatás előtti ellenőrzés)
$eredm = mysql_query($qery, $CID);
if (mysql_num_rows($eredm)==0) die ("Nincs találat!");
//echo mysql_num_rows($eredm). " sorod van."; //Kiírja, hogy hány sora van a
táblázatomnak
$sor = mysql_fetch_array($eredm, MYSQL_ASSOC); //tömböt készítek a sorból (a
következő sorból)
echo "<TABLE>";
echo "<TR>";
echo "<TD> <B><FONT
color='335fa6' size='5'> Azonosító:
</FONT></B></TD>";
echo "<TD><input
type='text' name='id'
value='".$sor["id"]."'</TD>";
echo "<TR>";
echo "<TD> <B><FONT
color='335fa6' size='5'> Könyv címe:
</FONT></B></TD>";
echo "<TD><input
type='text' name='cim' value='".$sor["cim"]."'</TD>";
echo "<TR>";
echo "<TD> <B><FONT
color='335fa6' size='5'> Szerző: </FONT></B></TD>";
echo "<TD><input
type='text' name='szerzo'
value='".$sor["szerzo"]."'</TD>";
echo "<TR>";
echo "<TD> <B><FONT
color='335fa6' size='5'> Műfaj: </FONT></B></TD>";
echo "<TD><input
type='text' name='mufaj'
value='".$sor["mufaj"]."'</TD>";
echo "<TR>";
echo "<TD><B><FONT
color='335fa6' size='5'> Mejelenés:
</FONT></B></TD>";
echo "<TD><input
type='text' name='megjel' value='".$sor["megjel"]."'</TD>";
echo "<TABLE>"
?>
Saját függvény készítése:
<?php
function kiir()
{
print ("Helló világ");
}
kiir();
?>
A function paranccsal határozzuk meg a fügvényünket, mit csináljon.
Eredmény:
Helló világ
Saját függvény használata
változóval:
<?php
function kiir($szoveg)
{
print ("$szoveg<br>");
}
kiir("Ez az elsősor");
kiir("Ez a második...");
kiir("És ez az utolsó!");
?>
Eredmény:
Ez az elsősor
Ez a második...
És ez az utolsó!
Hogyan használja a függvény a
változókat:
<?php
function terulet($aoldal, $boldal=10)
{
print ("A téglalap területe: ". $aoldal
* $boldal. "<br>");
}
terulet (3, 4);
terulet (3); → ha
nincs megadva a 2. érték, akkor az alapértelmezettel számol
?>
És az eredmény:
A téglalap területe: 12
A téglalap területe: 30
<?php
function osszead($szam1, $szam2)
{
$eredmeny= $szam1 + $szam2;
return $eredmeny;
}
$tag1 = 12;
$tag2 = 21;
print (osszead($tag1, $tag2));
?>
És az eredmény:
33
Ciklusok:
<?php
$i=1;
while ($i<10)
{
print ("A számunk: $i<br>");
$i++;
}
?>
És az eredmény:
A számunk: 1 →a ciklus addig folytatódik amig igaz
az állítás
A számunk: 2
A számunk: 3
A számunk: 4
A számunk: 5
A számunk: 6
A számunk: 7
A számunk: 8
A számunk: 9
…és a fordított do…while
ciklus:
<?php
$i=1;
do
{
print ("A számunk: $i<br>");
$i++;
}
while
($i<10)
?>
Az erdmény ugyanaz. Először lefut a parancs, és ha igaz kiíródik.
For ciklus:
<?php
for ( $i=1; $i<11; $i++)
{
print(" <br>3 * $i = ". 3*$i); →Ha van szóköz kiírja, ha nincs kiszámolja
}
?>
Eredmény:
3 * 1 = 3
3 * 2 = 6
3 * 3 = 9
3 * 4 = 12
3 * 5 = 15
3 * 6 = 18
3 * 7 = 21
3 * 8 = 24
3 * 9 = 27
3 * 10 = 30
És másképp:
<?php
$i=1;
for ( ; ; )
{
print(" <br>3 * $i = ". 3*$i);
$i++;
if ($i>10)
break;
}
?>
Itt a kilépésről a break
gondoskodik, de az eredmény ugyanaz.
Az egymásba ágyazott ciklus:
<?php
print("<table border='1'>\n");
for ($i=1; $i<11; $i++)
{
print("<tr>\n");
for ($j=1; $j<16; $j++)
{
print("\t<td>");
print($i*$j);
print("</td>\n");
}
print("</tr>\n");
}
print("</table>");
?>
És az eredmény:
Egy EXCEL-táblázat adataiból feltöltünk
egy adatbázist!
Az EXCEL-táblázatban az
adatok között nem szerepelhet pontosvessző, mert azt a létrehozandó .CSV kiterjesztésű
állományban az adatok tagolására fogjuk használni.
Ezért a pontosvesszőket
cseréljük ki valami másra!
Ezután mentsük el a fájlt a Fájl menü Mentés másként… opciójával CSV
(pontos vesszővel tagolt) fájltípusként a C:\xampp\mysql\bin mappába!
A mentett fájlt nyissuk meg
egy egyszerű szövegszerkesztővel (pl. Notepad++), töröljük az első sort (ami a
fejrész) és ügyeljünk rá, hogy üres sor se maradjon a fájlban!
Egy egyszerű
szövegszerkesztővel hozzunk létre egy hdmovies.sql nevű fájlt az alábbi
tartalommal: //ebből
fogjuk létrehozni a táblát
USE HDMOVIES;
DROP TABLE IF EXISTS MOVIES;
CREATE TABLE MOVIES (
MID INT NOT NULL AUTO_INCREMENT,
ORIGINALTITLE VARCHAR(100),
TRANSLATEDTITLE VARCHAR(100),
ALTERNATETITLE VARCHAR(255),
DIRECTOR VARCHAR(75),
CAST TEXT,
RUNNINGTIME INT,
RATING FLOAT,
PICTURE VARCHAR(100),
PLOT TEXT,
VIDEORESOLUTION VARCHAR(10),
VIDEOFILESIZE INT,
RELEASEDATE VARCHAR(50),
PRIMARY KEY (MID)
);
A fájlt szintén a C:\xampp\mysql\bin mappába mentsük!
Belépünk a MySQL-be:
Parancssor:
C:\xampp\mysql\bin>mysql
-u root
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.1.30-community MySQL Community Server (GPL)
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
Létrehozzuk az adatbázist:
mysql> create database
hdmovies;
Query OK, 1 row affected (0.02 sec)
mysql> quit;
Bye
Létrehozzuk
a táblákat:
C:\xampp\mysql\bin>mysql -u root <hdmovies.sql Ezzel hozza létre az adattáblát
C:\xampp\mysql\bin>mysql
-u root
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.1.30-community MySQL Community Server (GPL)
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
Ellenőrzés:
mysql> select * from
movies;
ERROR 1046 (3D000): No database selected
mysql> use hdmovies;
Database changed
mysql> select * from movies;
Empty set (0.02 sec)
mysql> show tables;
+--------------------+
| Tables_in_hdmovies |
+--------------------+
| movies |
+--------------------+
1 row in set (0.03 sec)
mysql> desc movies;
+-----------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------------+--------------+------+-----+---------+----------------+
| MID | int(11) | NO | PRI | NULL | auto_increment |
| ORIGINALTITLE | varchar(100) | YES | | NULL | |
| TRANSLATEDTITLE | varchar(100) | YES | | NULL | |
| ALTERNATETITLE | varchar(255) | YES | | NULL | |
| DIRECTOR | varchar(75) | YES | | NULL | |
| CAST | text | YES | | NULL | |
| RUNNINGTIME | int(11) | YES | | NULL | |
| RATING | float | YES | | NULL | |
| PICTURE | varchar(100) | YES | | NULL | |
| PLOT | text | YES | | NULL | |
| VIDEORESOLUTION | varchar(10) | YES | | NULL | |
| VIDEOFILESIZE | int(11) | YES | | NULL | |
| RELEASEDATE | varchar(50) | YES | | NULL | |
+-----------------+--------------+------+-----+---------+----------------+
13 rows in set (0.00 sec)
A mentett films.csv fájl adatainak
feltöltése az adatbázisba:
mysql> load data infile
'hdmovies.csv' into tables movies fields terminated by '
;' lines terminated by '\n';
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'tables movies fields terminated by ';' lines terminated by '\n'' at line 1
mysql> load data infile 'films.csv' into tables movies fields terminated by
';'
lines terminated by '\n';
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'tables movies fields terminated by ';' lines terminated by '\n'' at line 1
mysql> load data infile 'c:\\xampp\\mysql\\bin\\films.csv' into tables
movies fi
elds terminated by ';' lines
terminated by '\n';
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'tables movies fields terminated by ';' lines terminated by '\n'' at line 1
mysql> load data infile
'c:\\xampp\\mysql\\bin\\films.csv' into table movies fields terminated by ';'
lines terminated by '\n'; A teljes elérési útvonal kell!!
Query OK, 247 rows affected, 247 warnings (0.02 sec)
Records: 247 Deleted: 0 Skipped: 0 Warnings: 247
Lekérdezések:
mysql>nd (videoresolution like "%1080") order by rating desc;
+-----------------+
| videoresolution |
+-----------------+
| 1920x1080 |
| 1920x1080 |
| 1920x1080 |
| 1920x1080 |
| 1920x1080 |
|
+-----------------+
10 rows in set (0.00 sec)
mysql> select translatedtitle from movies where
(videofilesize>"4500");
+-----------------------------------------------+
| translatedtitle |
+-----------------------------------------------+
| 2001 - Űrodüsszeia |
| 300 |
| A Fantasztikus Négyes és az Ezüst Utazó |
| Lovagregény |
| Kamera által homályosan |
| ABBA |
| Mrs. Doubtfire - Apa csak egy van |
| A nemzet aranya |
| A nemzet aranya - Titkok könyve |
| A barbár |
| A felejtés bére |
| A fülke |
| A Karib-tenger kalózai - A világ végén |
| A Karib-tenger kalózai 2. - Holtak kincse |
| A Karib-tenger kalózai - A Fekete Gyöngy átka |
| Ponyvaregény - Pulp Fiction |
| L'ecsó |
| A kaptár |
| Gyilkos nap |
| Robotok |
| Hét év Tibetben |
| Féktelenül |
| Star Wars IV. - Csillagok háborúja |
| Star Wars I. - Baljós árnyak |
| Star Wars II. - A klónok támadása |
| Star Wars III. - A Sith-ek bosszúja |
| Star Wars V. - A birodalom visszavág |
| Star Wars VI. - Jedi visszatér |
| Csillagkapu |
| Lopakodó |
| Napfény |
| Terminátor 2 - Az ítélet napja |
| A hatodik napon |
| Hangya boy |
| A csontember |
| Pillangó-hatás |
| Narnia Krónikái - Caspian herceg |
| A Da Vinci-kód |
|
| X-Men - A kívülállók |
| Az igenember |
STB
+-----------------------------------------------+
110 rows in set (0.00 sec)
mysql> select translatedtitle
from movies where (cast like "%giselle%");
mysql> jelenítsd meg
azokat a filmcímeket melynek címszerepe giselle;
+-----------------+
| translatedtitle |
+-----------------+
| Bűbáj |
| Nagyon vadon |
+-----------------+
2 rows in set (0.00 sec)
mysql> select
translatedtitle from movies where (releasedate like "%japan%");
+---------------------------+
| translatedtitle |
+---------------------------+
| Avalon - Virtuális csapda |
| Appleseed 2 |
+---------------------------+
2 rows in set (0.00 sec)
mysql> select
translatedtitle from movies where (cast like "%will smith%") and
(rating like min); Nem „és” hanem „vagy”!!
ERROR 1054 (42S22): Unknown column 'min' in 'where clause'
mysql> select
videoresolution from movies where (videoresolution like "1920%") or
(videoresolution like "%1080") order by rating desc; Így jó!
+-----------------+
| videoresolution |
+-----------------+
| 1920x1080 |
| 1920x864 |
| 1920x1080 |
| 1920x800 |
| 1920x800 |
| 1920x816 |
| 1920x1072 |
| 1920x1080 |
| 1920x1080 |
| 1920x1072 |
| 1920x814 |
| 1920x816 |
| 1920x1080 |
| 1920x824 |
| 1920x816 |
| 1920x1040 |
| 1920x820 |
| 1920x1080 |
| 1920x816 |
| 1920x800 |
| 1920x1072 |
| 1920x1080 |
+-----------------+
55 rows in set (0.00 sec)
mysql> select
translatedtitle from movies where (cast like "%will smith%");
+-----------------------------------+
| translatedtitle |
+-----------------------------------+
| Hancock |
| Legenda vagyok |
| Én, a robot |
| A függetlenség napja |
| Men in Black - Sötét zsaruk |
| Men in Black - Sötét zsaruk 2. |
| Cápamese |
| A boldogság nyomában |
| Wild Wild West - Vadiúj Vadnyugat |
+-----------------------------------+
9 rows in set (0.00 sec)
mysql> select translatedtitle,
rating from movies where (cast like "%will smith%
") and order by rating
limit 1; Nem kell az „és”!!
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near 'order
by rating limit 1' at line 1
mysql> select translatedtitle, rating from
movies where (cast like "%will smith%
") order by rating limit
1;
+-----------------------------------+--------+
| translatedtitle | rating |
+-----------------------------------+--------+
| Wild Wild West - Vadiúj Vadnyugat | 4 |
+-----------------------------------+--------+
1 row in set (0.00 sec)
mysql> select count(mid)
from movies where (cast like "%nicolas cage%";
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near '' at line 1 Lemaradt egy zárójel!!
mysql> select count(mid) from movies where
(cast like "%nicolas cage%");
+------------+
| count(mid) |
+------------+
| 9 |
+------------+
1 row in set (0.00 sec)
mysql>quit
mysql> select id, cim from konyvektbl where
(szerzo like 'L%') or (szerzo like
V%');
+----+-----------------------+
| id | cim |
+----+-----------------------+
| 7 | Könnyű álom |
| 2 | A szrinpok volgyeben |
| 4 | Szadhuk |
| 5 | A fekete anya kigyoja |
| 6 | Veszbejarat |
+----+-----------------------+
5 rows in set (0.01 sec)
mysql> select id, cim from konyvektbl where (szerzo like 'L%') and
(megjel>200
;
+----+-----------------------+
| id | cim |
+----+-----------------------+
| 2 | A szrinpok volgyeben |
| 4 | Szadhuk |
| 5 | A fekete anya kigyoja |
+----+-----------------------+
3 rows in set, 1 warning
(0.01 sec)
mysql> select id, cim from konyvektbl where (szerzo like 'P%') order
by cim asc;
+----+-----------------------------+
| id | cim |
+----+-----------------------------+
| 14 | A csontbrigád |
| 12 | A szőke ciklon |
| 13 | Az ellopott futár |
| 15 | Az előretolt
helyőrség |
| 16 | Gyilkosság a
Grand-hotelben |
+----+-----------------------------+
5 rows in set (0.02 sec)
ERROR 1064 (42000): A
Szintaktikai hiba a 'asc'-hez kozeli a 1 sorban
mysql> select szerzo, cim from konyvektbl order by cim asc;
+--------------------+-----------------------------+
| szerzo | cim |
+--------------------+-----------------------------+
| P. Howard | A csontbrigád |
| Leslie L. Lawrence | A
fekete anya kigyoja |
| P. Howard | A szőke ciklon |
| Leslie L. Lawrence | A
szrinpok volgyeben |
| P. Howard | Az ellopott futár |
| P. Howard | Az előretolt helyőrség |
| P. Howard | Gyilkosság a Grand-hotelben |
| Vavyan Fable | Könnyű álom |
| Molnar Ferenc | Pal utcai fiuk |
| Leslie L. Lawrence |
Szadhuk |
| Michael Mansfield | Tuzliderc |
| Vavyan Fable | Veszbejarat |
+--------------------+-----------------------------+
12 rows in set (0.00 sec)
mysql> update konyvektbl
set szerzo=Rejto Jeno where (szerzo like 'P%');
ERROR 1064 (42000): A
Szintaktikai hiba a 'Jeno where (szerzo like 'P%')'-hez
zeli a 1 sorban
mysql> update konyvektbl set szerzo='Rejto Jeno' where (szerzo like
'P%');
Query OK, 5 rows affected
(0.03 sec)
Megegyezo sorok szama: 5 Valtozott: 5
Warnings: 0
mysql> select * from
konyvektbl;
+----+-----------------------------+--------------------+---------+-----------
| id | cim | szerzo | mufaj | megjel
+----+-----------------------------+--------------------+---------+-----------
| 7 | Könnyű álom | Vavyan Fable | Fantasy | 1996-01-01
| 2 | A szrinpok volgyeben | Leslie L. Lawrence | Krimi | 2007-01-01
| 3 | Tuzliderc | Michael Mansfield | Kaland
| 2000-01-01
| 4 | Szadhuk | Leslie L. Lawrence |
Krimi | 2005-01-01
| 5 | A fekete anya kigyoja | Leslie L. Lawrence | Krimi | 2004-01-01
| 6 | Veszbejarat | Vavyan Fable | Krimi
| 2008-01-01
| 16 | Gyilkosság a
Grand-hotelben | Rejto Jeno |
Regény | 1969-01-01
| 12 | A szőke ciklon | Rejto Jeno | Regény | 1973-01-01
| 13 | Az ellopott futár | Rejto Jeno | Regény | 1986-01-01
| 14 | A csontbrigád | Rejto Jeno | Regény | 1976-01-01
| 15 | Az előretolt
helyőrség | Rejto Jeno | Regény | 1990-01-01
| 17 | Pal utcai fiuk | Molnar Ferenc | Regeny
| 1960-01-01
+----+-----------------------------+--------------------+---------+-----------
12 rows in set (0.00 sec)
mysql> delete from konyvektbl where id=17;
Query OK, 1 row affected
(0.04 sec)
mysql> select id AS
sorszam, szerzo, cim AS konyvcim from konyvektbl;
+---------+--------------------+-----------------------------+
| sorszam | szerzo | konyvcim |
+---------+--------------------+-----------------------------+
| 7 | Vavyan Fable | Könnyű álom |
| 2
| Leslie L. Lawrence | A szrinpok volgyeben |
| 3 | Michael Mansfield | Tuzliderc |
| 4 | Leslie L. Lawrence | Szadhuk |
| 5 | Leslie L. Lawrence | A fekete anya
kigyoja |
| 6 | Vavyan Fable | Veszbejarat |
| 16 | Rejto Jeno | Gyilkosság a Grand-hotelben |
| 12 | Rejto Jeno | A szőke ciklon |
| 13 | Rejto Jeno | Az ellopott futár |
| 14 | Rejto Jeno | A csontbrigád |
| 15 | Rejto Jeno | Az előretolt helyőrség |
+---------+--------------------+-----------------------------+
11 rows in set (0.00 sec)
mysql> select id AS sorszam, szerzo, cim AS konyvcim from
konyvektbl order by sz
erzo, cim;
+---------+--------------------+-----------------------------+
| sorszam | szerzo | konyvcim |
+---------+--------------------+-----------------------------+
| 5 | Leslie L. Lawrence | A fekete anya
kigyoja |
| 2 | Leslie L. Lawrence | A szrinpok
volgyeben |
| 4 | Leslie L. Lawrence | Szadhuk |
| 3 | Michael Mansfield | Tuzliderc |
| 14 | Rejto Jeno | A csontbrigád |
| 12 | Rejto Jeno | A szőke ciklon |
| 13 | Rejto Jeno | Az ellopott futár |
| 15 | Rejto Jeno | Az előretolt helyőrség |
| 16 | Rejto Jeno | Gyilkosság a Grand-hotelben |
| 7 | Vavyan Fable | Könnyű álom |
| 6 | Vavyan Fable | Veszbejarat |
+---------+--------------------+-----------------------------+
11 rows in set (0.00 sec)