12.07.2015 Views

Untitled - Vitajte na stránkach www.einsty.hostujem.sk

Untitled - Vitajte na stránkach www.einsty.hostujem.sk

Untitled - Vitajte na stránkach www.einsty.hostujem.sk

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

P R O G R A M U J E M ECREATE TABLE Rubriky(id_rubriky INT NOT NULL PRIMARY KEY,<strong>na</strong>zov VARCHAR(20),statistika INT);CREATE TABLE Clanky(id_clanku INT NOT NULL PRIMARY KEY,id_autora INT NOT NULL,id_rubriky INT NOT NULL,datum DATE,<strong>na</strong>zov VARCHAR(50),anotacia VARCHAR(250),text LONG,obrazok VARCHAR(30),statistika INT);CREATE SEQUENCE id_clanku INCREMENT BY 1;Za zmienku stojí deklarácia text LONG, typ LONG v Oracle 8i umožòuje zadáva re azceaž do dåžky 2 31 z<strong>na</strong>kov.MS SQL Server 2000CREATE TABLE Autori(id_autora INT PRIMARY KEY,priezvi<strong>sk</strong>o VARCHAR(15),meno VARCHAR(15),heslo VARCHAR(8),email VARCHAR(15),statistika INT);CREATE TABLE Rubriky(id_rubriky INT PRIMARY KEY,<strong>na</strong>zov VARCHAR(20),statistika INT);CREATE TABLE Clanky(id_clanku INT IDENTITY (1, 1) NOT FOR REPLICATION PRIMARY KEY,id_autora INT NOT NULL,id_rubriky INT NOT NULL,datum DATETIME,<strong>na</strong>zov VARCHAR(50),anotacia VARCHAR(250),text TEXT,obrazok VARCHAR(30),statistika INT);Aby sme mohli zaèa vývoj a hlavne ladenie <strong>sk</strong>riptového kódu, musíme <strong>na</strong>plni tabu¾kyhodnotami potrebnými <strong>na</strong> zobrazenie minimálne jedného èlánku. Keïže tabu¾ky Autori,Rubriky a Clanky sú vzájomne relaène zviazané, musíme ich <strong>na</strong>plni každú aspoòjedným záz<strong>na</strong>mom. Do tabu¾ky Autori vložíme záz<strong>na</strong>m:INSERT INTO AutoriVALUES (1, ‘Kuchtikova’, ‘Beata’, ‘beatka’, ‘b@b.<strong>sk</strong>’, 0);do tabu¾ky Rubriky záz<strong>na</strong>m:INSERT INTO Rubriky VALUES (1, ‘LINIA’, 0);a do tabu¾ky Clanky záz<strong>na</strong>m:INSERT INTO ClankyVALUES (id_clanku.nextval, 1,1, SYSDATE,‘Štíhla línia - sen všetkých dievèat’,‘Ktorá z nás by nechcela by štíhla a prí ažlivá..’,‘...Zaver je prekvapivo jednoduchy: Menej jedla a viac pohybu’,‘beatka.jpg’,0);Pre zobrazenie informácie o èlánku <strong>na</strong> hlavnej stránke publikaèného portálu použijemekombinovaný dopyt SQL do všetkých troch tabuliek:SELECT Rubriky.<strong>na</strong>zov, Autori.priezvi<strong>sk</strong>o, Autori.meno, Clanky.<strong>na</strong>zov, Clanky.anotacia,Clanky.statistikaFROM Rubriky, Autori, ClankyWHERE Clanky.id_rubriky = Rubriky.id_rubriky AND Clanky.id_autora = Autori.id_autora;Ak takýto dopyt SQL zadáme pomocou konzoly databázovému serveru, ten nám vrátipožadovaný výsledok:LINIA Kuchtikova BeataŠtíhla línia - sen všetkých dievèatKtorá z nás by nechcela by štíhla a prí ažlivá.. 0Presne takto sme si predstavovali, že to bude vypísané <strong>na</strong> stránke HTML u klienta,samozrejme, v lepšej úprave. Tento dopyt SQL musíme vyko<strong>na</strong> pomocou <strong>sk</strong>riptovéhokódu <strong>na</strong> stránke ASP a vygenerova stránku HTML pre klienta. Ale o tom až v <strong>na</strong>sledujúcompokraèovaní seriálu.¼uboslav LackoPHP a obrázky / 2. èasV predošlej èasti sme si ukázali, ako je možné vytvára obrázky v pamäti a ako ich odtia¾uvo¾ni . Takisto sme si ukázali, ako obrázky <strong>na</strong>èíta zo súborov rôznych formátov. Tentorazsa budeme venova kresleniu v obrázkoch.KRESLIACE FUNKCIE GD. Základnou jednotkou v obrázku je pixel, a pretozaèneme funkciou <strong>na</strong> <strong>na</strong>stavenie (kreslenie) pixela. Na to nám poslúži funkcia Image-SetPixel(), ktorá vyžaduje štyri argumenty. Prvým je identifikátor obrázka (ktorým smesa zaoberali v predchádzajúcej èasti), v ktorom chcete príslušnú kresliacu funkciu [vtomto prípade ImageSetPixel()] použi . Tento identifikátor je vyžadovaný každou kresliacoufunkciou GD knižnice. Preto vždy pred kreslením musíte vytvori obrázok niektorýmzo spôsobov, ktoré sme uviedli v predošlej èasti, teda buï vytvorením prázdnehoobrázka priamo v <strong>sk</strong>ripte, alebo <strong>na</strong>èítaním zo súboru. Vrá me sa k funkciiImageSetPixel(). Druhým a tretím argumentom je daná pozícia pixela, ktorého farbuchcete <strong>na</strong>stavi , prièom druhý argument predstavuje x-ovú súradnicu a tretí y-ovú. Zapoèiatok sa považuje ¾avý horný roh, ktorý má súradnice [0,0]. Pozícia <strong>na</strong>stavovanéhopixela by logicky nemala prekroèi ani jeden s rozmerov obrázka, pretože hoci <strong>sk</strong>riptnevyvolá nijaké chybové hlásenie, v obrázku ne<strong>na</strong>stanú žiadne zmeny. Poslednýmparametrom funkcie je farba, <strong>na</strong> ktorú má by pixel <strong>na</strong>stavený. Narábaniu s farbamisa budeme venova ne<strong>sk</strong>ôr, teraz iba vedzte, že tento parameter je typu int azvykne sa odovzdáva vo forme premennej, do ktorej si uložíte index farby v palete.Ukážka, ako môžete funkciou ImageSetPixel() <strong>na</strong>príklad vykresli vodorovnú èiaru dlhú10 pixelov:Tento kód vykreslí vodorovnú èiaru od pozície [0,50] po [10,50]. Na <strong>na</strong>stavenie jejfarby treba priradi premennej $cier<strong>na</strong> index príslušnej (v tomto prípade èiernej) farby vpalete. Ako to urobi , to sa dozviete ne<strong>sk</strong>ôr.Predchádzajúci príklad bol síce pekný ako ukážka kreslenia pomocou Image-SetPixel(), ale urèite aj nepraktický. Na kreslenie èiar v obrázkoch je v GD knižnici užpreddefinovaná funkcia ImageLine(). Táto funkcia vám umožní kresli èiary ove¾a pohodlnejšieako predchádzajúca. Prvým parametrom funkcie je opä už spomí<strong>na</strong>ný identifikátorobrázka, v ktorom chcete èiaru <strong>na</strong>kresli . Ïalšie dva parametre urèujú súradnicev obrázku, kde sa bude èiara zaèí<strong>na</strong> , prièom druhý parameter predstavuje x-ovúsúradnicu a tretí y-ovú súradnicu. Ïalšie dva parametre rov<strong>na</strong>kým spôsobom opisujúsúradnice konca èiary. Posledným parametrom je index farby, ktorou bude èiara <strong>na</strong>kreslená.Tento index môže by aj <strong>na</strong>hradený vzorkou štetca, vïaka èomu môžete kresli ajvzorkované èiary. Aby ste tento spôsob vykres¾ovania èiary mohli používa , musíte <strong>na</strong>jprvpríslušný vzor vytvori ako obrázok (je jedno, akým spôsobom, èi si ho vytvoríte a<strong>na</strong>kreslíte sami alebo ho <strong>na</strong>èítate zo súboru) a potom zavola funkciu ImageSetBrush(),ktorej prvým parametrom je identifikátor obrázka, v ktorom chcete daný typ štetcapoužíva , a druhým parametrom je identifikátor obrázka obsahujúci žiadaný štetec.Keïže štetec je tiež iba obyèajným obrázkom, mali by ste ho vždy, keï ho už nebudetepotrebova , uvo¾ni z pamäte. Po uvo¾není z pamäte ho však už nesmiete používa .Nasledujúci príklad vykreslí èiaru od súradnice [10,10] po súradnicu [70,70]. Vzorecštetca je <strong>na</strong>èítaný zo súboru JPG.Musím upozorni , že v prípade, že používate php_gd.dll priamo z distribúcie PHP 4.0.6(samozrejme pod Win32), môžete ma problémy s používaním štetcov. Ak by sa tak staloa vy by ste chceli štetce vo svojich <strong>sk</strong>riptoch používa , musíte si GD knižnicu <strong>sk</strong>ompilovasami. V tom prípade si však pozrite dobre dokumentáciu, pretože názvy funkcií a pre-134 PC REVUE 10/2001

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!