2020. március 31., kedd

Programozási nyelvek elmélete

A programozási nyelvekben közös hogy rendelkeznek szintaktiakai és szemantikai és szemiotikai szabályokkal, amiket meg kelll tanulni, ahhoz hogy használni tudjuk eredményesen.

https://hu.wikipedia.org/wiki/Programoz%C3%A1si_nyelvek_kateg%C3%B3ri%C3%A1k_szerint
http://fizweb.elte.hu/download/Fizika-BSc/C-Cpp-programozas/Cpp_Stroustrup.pdf
Alacsony szintű nyelv:
Assembly
(Gépi kódú nyelv)


Magas szintű nyelvek:
BASIC; PASCAL; C; C++;
C#; JAVA; Python; 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.

Alprogram
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.
Iteráció: Más néven ciklus, vagy ismétlési szerkezet.
Valamilyen feltételtől függően ismétlünk meg egy tevékenységet, vagy tevékenységsorozatot. Az ismétlésre kerülő tevékenységek alkotják a ciklus magját.
Két típusát különböztetjük meg attól függően, hogy a ciklust vezérlő feltétel kiértékelése a ciklusmag végrehajtásához képest mikor történik:
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/>

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=”0” cellák közötti távolság
SPACING=”0” a cella és a betű közötti távolság


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
    -> (
    -> 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
o    szöveg (max. 232 bájt): String,
o    logikai változó (2 bájt): - Boolean
o    dátum (8 bájtos): Date

<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:
Hello World!
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:
Hello World!
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:
Hello World!
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
Á    &#193;    &Aacute;    á    &#225;    &aacute;
É    &#201;    &Eacute;    é    &#233;    &eacute;
Í    &#205;    &Iacute;    í    &#237;    &iacute;
Ó    &#211;    &Oacute;    ó    &#243;    &oacute;
Ö    &#213;    &Ocirc;    ö    &#245;    &ocirc;
Ő    &#214;    &Ouml;    ő    &#246;    &ouml;
Ú    &#218;    &Uacute;    ú    &#250;    &uacute;
Ü    &#219;    &Ucirc;    ü    &#251;    &ucirc;
Ű    &#220;    &Uuml;    ű    &#252;    &uuml;


Néhány speciális jel és kódjaik
Elnevezés       Jel    ESC    ISO    Elnevezés       Jel    ESC    ISO
Tabulátor             &#09        Soremelés          &#10;  
Szóköz             &#32    &nbsp;    Felkiáltójel    !    &#33;    !
Idézõjel      ”    &#34    &quot;    Számjel      #    &#35    #
Dollárjel      $    &#36    $    Százalékjel    %    &#37    %
Angol és jel      &    &#38    &    Aposztróf    ’    &#39    &amp;
Bal zárójel    (    &#40    (    Jobb zárójel      )    &#41    )
Aszteriszk      *    &#42    *    Pluszjel    +    &#43    +
Vesszõ    ,    &#44    ,    Kötõjel    -    &#45    -
Pont    .    &#46    .    Perjel      /    &#47    /
Nullás    0    &#48    0    Egyes    1    &#49    1
Kettes      2    &#50    2    Hármas      3    &#51    3
Négyes      4    &#52    4    Ötös    5    &#53    5
Hatos      6    &#54    6    Hetes      7    &#55    7
Nyolcas      8    &#56    8    Kilences    9    &#57    9
Kettõspont    :    &#58    :    Pontosvesszõ    ;    &#59    ;
Kisebb jel    <    &#60    &lt;    Egyenlõségjel    =    &#61    =
Nagyobb jel    >    &#62    &gt;    Kérdõjel    ?    &#63    ?
Kukac      @    &#64    @    Bal zárójel    [    &#91    [
Visszaper jel    \    &#92    \    Jobb zárójel      ]    &#93    ]
Hatványjel      ^    &#94    ^    Aláhúzás      _    &#95    _
Aposztrof      ’    &#96    ’    Bal kapocs    {    &#123;    {
Függõleges    |    &#124;    |    Jobb kapocs      }    &#125;    }
Tilde jel      ~    &#126;    ~    Alsó aposztrof      ‚    &#130;  
Alsó idézõjel      „    &#132;        Kereszt    †    &#134;  
Kettõs kereszt    ‡    &#135;        Ezrelék    ‰    &#137;  
Felsõ vesszõ      ’    &#145;        Felsõ vesszõ    ’    &#146;  
Kettõs vesszõ    ’’    &#147;        Kettõs vesszõ    ’’    &#148;  
Szorzás jel    •    &#149;        Mínusz elõjel      -    &#150;  
Kivonás jel    -    &#151;        Trade Mark      ™    &#153;  
Cent jele      c    &#162;    &cent;    Font jele    L    &#163;    &pound;
Csõvezeték jel      ¦    &#166;    &brvbar;    Paragrafus jel    §    &#167;    &sect;
Umlaut      ¨    &#168;    &uml;    Copyright    ©    &#169;    &copy;
Bal tört idézet      «    &#171;    &laquo;    Lágy kötõjel        &#173;    &shy;
Registered TM    ®    &#174;    &reg;    Fok jele      °    &#176;    &deg;
Plusz-mínusz    ±    &#177;    &plusmn;    Ékezet    ´    &#180;    &acute;
Mikro      µ    &#181;    &micro;    Bekezdés vége      ¶    &#182;    &para;
Középen pont    •    &#183;    &middot;    Jobb tört idézet      »    &#187;    &raquo;
Szorzás kereszt    ×    &#215;        Scharfes s      ß    &#223;    &szlig;
Osztás jel      ÷    &#247;                  


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)