Lehk² ·vod do tvorby databßzov²ch aplikacφ v prost°edφ MySQL a PHP3

Tento dokument obsahuje zßkladnφ informace pot°ebnΘ pro tvorbu databßzov²ch aplikacφ s WWW rozhranφm. Jako databßzov² systΘm se pou₧φvß jednoduch² SQL server MySQL. Pro dynamickΘ generovßnφ strßnek z databßze se pou₧φvß systΘm PHP3.

Na Φtenß°e nejsou kladeny ₧ßdnΘ zvlßÜtnφ nßroky. StaΦφ, kdy₧ ovlßdß jazyk HTML a zßklady prßce se systΘmem PHP3. Znalost jazyka SQL nenφ v∙bec na Ükodu, ale nenφ nezbytn∞ nutnß.

P°edtφm ne₧ zaΦneme programovat

I kdy₧ budeme vytvß°et aplikaci s WWW-rozhranφm, co₧ dnes jeÜt∞ nenΘ zdaleka b∞₧nΘ, jednß se v jßdru o klasickou databßzovou aplikaci. Proto by p°i tvorn∞ reßlnΘho systΘmu nem∞la chyb∞t fßze anal²zy, kdy podrobn∞ prostudujeme reßln² systΘm, jeho₧ obraz se bude v naÜem informaΦnφm systΘmu (databßzovΘ aplikaci) odrß₧et.

Tato fßze v₧dy sestßvß z vytvo°enφ datovΘho modelu, kter² popisuje vztahy mezi jednotliv²mi entitami. Z tohoto modelu takΘ vyΦteme jakΘ tabulky budou v databßzi, jakΘ budou primßrnφ klφΦe v jednotliv²ch tabulkßch, jakΘ jsou vztahy mezi tabulkami, jakß platφ integritnφ omezenφ atd.

Na rozebφrßnφ datovΘho modelovßnφ zde nenφ prostor. My si vÜe ukß₧eme na jednoduchΘ ·loze, kde si bez n∞j vystaΦφme. Pro slo₧it∞jÜφ systΘmy je vÜak d∙kladnß anal²za nezbytnß. Pot°ebnΘ znalosti lze zφskat nap°. v kurzu IT_360 -- Databßze. Zde se mimo jinΘ i d∙kladn∞ seznßmφte s jazykem SQL.

Ukßzkovß aplikace

Prßci s MySQL a PHP3 si ukß₧eme na jednoduchΘm p°φklad∞. Vytvo°φme jednoduch² adresß°, kter² bude slou₧it k uchovßvßnφ jmen, e-mailov²ch adres a dat narozenφ kamarßd∙. Aplikace nßm umo₧nφ adresß° prohledßvat a prohlφ₧et, p°idßvat do n∞j novΘ ·daje, opravovat ·daje stßvajφcφ a neaktußlnφ ·daje mazat.

MySQL

MySQL je jednoduch² databßzov² SQL server. Poskytuje vÜak dostateΦnΘ prost°edky pro tvorbu naÜφ aplikace. Navφc je p°imo podporovßn systΘmem PHP3, co₧ se nßm bude za chvφli hodit.

MySQL umo₧≥uje na jednom poΦφtaΦi pracovat s vφce databßzemi. Ka₧dß databßze pak m∙₧e obsahovat n∞kolik tabulek, kterΘ mohou, ale nemusφ, b²t navzßjem provßzßny. V²pis vÜech databßzφ ulo₧en²ch v systΘmu zφskßme pomocφ p°φkazu:

mysqlshow
Ka₧d² mßte k dispozici databßzi, jejφ₧ jmΘno odpovφdß vaÜemu u₧ivatelskΘmu jmΘnu. Pokud se chceme podφvat, jakΘ tabulky databßze obsahuje, pou₧ijeme p°φkaz:
mysqlshow jmΘno_databßze
K samotnΘ prßci s databßzφ slou₧φ p°φkaz mysql. Po jeho spuÜt∞nφ m∙₧eme pomocφ p°φkazovΘ °ßdky zadßvat SQL p°φkazy, kterΘ se majφ provΘst. Jako parametr programu se zadßvß jmΘno databßze, se kterou chceme pracovat. P°φkazovou °ßdku programu ukonΦφme pomocφ p°φkazu quit.

Vytvo°enφ novΘ tabulky

Nynφ si ukß₧eme vytvo°enφ naÜφ ukßzkovΘ tabulky. Nejprve spustφme prost°edφ MySQL p°φkazem:
mysql xaaabnn
xaaabnn je p°itom naÜe u₧ivatelskΘ jmΘno a tedy i jmΘno databßze. K vytvo°enφ novΘ tabulky v databßzi slou₧φ SQL p°φkaz create table. Jeho syntaxe je nßsledujφcφ:
create table jmΘno_tabulky (jmΘno_polo₧ky typ_polo₧ky, ... )
P°ehled nejb∞₧n∞jÜφch datov²ch typ∙ p°inßÜφ tabulka.

VybranΘ datovΘ typy MySQL
TypPopis
intcelΘ Φφslo
floatΦφslo s pohyblivou °ßdovou Φßrkou
varchar(n)textov² °et∞zec o maximßlnφ dΘlce n
datedatum ve tvaru RRRR-MM-DD
timeΦas ve tvaru HH:MM:SS

My vytvo°φme tabulku adresar se Φty°mi polo₧kami jmΘno, p°φjmenφ, e-mail a datum narozenφ. Pro usnadn∞nφ dalÜφch operacφ p°idßme do tabulky i pßtou polo₧ku, kterou bude jedineΦnΘ identifikaΦnφ Φφslo zßznamu (primßrnφ klφΦ). Toto Φφslo deklarujeme tak, ₧e se bude u ka₧dΘho novΘho zßznamu automaticky zvyÜovat -- MySQL pohlφdß, aby m∞l ka₧d² zßznam toto Φφslo unikßtnφ.

create table adresar (id int auto_increment primary key,
       jmeno varchar(15), prijmeni varchar(15), 
       email varchar(40), narozen date);
D∙le₧it² je st°ednφk na konci, kter²m se odesφlajφ p°φkazy MySQL k provedenφ.

O tom, ₧e se tabulka skuteΦn∞ vytvo°ila, se m∙₧eme p°esv∞dΦit pomocφ p°φkazu mysqldump xaaabnn (p°φkaz musφ b²t zadßn na p°φkazovou °ßdku shellu, ne v prost°edφ programu mysql).

P°idßnφ novΘho zßznamu do tabulky

P°φmo v programu mysql m∙₧eme do databßze p°idßvat i novΘ zßznamy. K p°idßnφ novΘho zßznamu do tabulky s N polo₧kami slou₧φ v SQL p°φkaz insert into:
insert into jmΘno_tabulky values (hodnota1, ..., hodnotaN)
My do tabulky p°idßme informace o panu Novßkovi:
insert into adresar values (0, 'Jan', 'Novßk', 
                            'Jan.Novak@mail.cz', '1965-08-25');
Nula na mφst∞ id zp∙sobφ automatickΘ generovßnφ jedineΦnΘho id. Obdobn²m zp∙sbem m∙₧eme p°idat i dalÜφ zßznamy. Vidφme, ₧e tento zp∙sob nenφ zrovna dvakrßt u₧ivatelsky p°φjemn² -- dobrß motivace pro vytvo°enφ snadno ovladatelnΘho WWW rozhranφ k tabulce.

V²b∞r a prohlφ₧enφ zßznam∙ v tabulce

K v²b∞ru a vypsßnφ zßznam∙ z tabulky slou₧φ p°φkaz select. Pokud chceme vypsat obsah celΘ tabulky, zadßme p°φkaz:
select * from jmΘno_tabulky
Obsah naÜφ tabulky si tedy m∙₧eme ov∞°it pomocφ:
select * from adresar;
Informace lze vybφrat i selektivn∞. Podmφnka, kterß musφ pro vybranΘ zßznamy platit, se uvßdφ za klφΦovΘ slovo where. P°φklady selektivnφch dotaz∙:
select * from adresar where prijmeni like 'Novßk';
select * from adresar where email = 'jkj@sorry.vse.cz';
select * from adresar where prijmeni = 'Prochßzka' and jmeno = 'Karel';
select * from adresar where prijmeni like 'Pro%';
Znak '%' mß ve vyhledßvacφm °et∞zci za operßtorem like specißlnφ v²znam -- nahrazuje libovolnou sekvenci znak∙.

RuÜenφ zßznam∙ v tabulce

K ruÜenφ zßznam∙ v tabulce slou₧φ p°φkaz delete from. Zßznamy, kterΘ chceme smazat, musφme urΦit podmφnkou v klauzuli where:
delete from jmΘno_tabulky where podmφnka
Praktickß ukßzka smazßnφ zßznamu, jeho₧ identifikaΦnφ Φφslo je t°i:
delete from adresar where id=3;

Zm∞na zßznamu v tabulce

Ke zm∞n∞ zßznamu slou₧φ p°φkaz update:
update jmΘno_tabulky set polo₧ka=hodnota, ... where podmφnka
Ten modifikuje vÜechny zßznamy, kterΘ vyhovujφ podmφnce. Pokud chceme m∞nit pouze jeden zßznam -- to je ostatn∞ nejtypiΦt∞jÜφ p°φklad -- je vhodnΘ jako podmφnku uvΘst test primßrnφho klφΦe na jedineΦnou hodnotu:
update adresar set email="novak@ini.cz" where id=37;
P°φkaz zm∞nφ mailovou adresu u₧ivatele, kter² je v adresß°i veden pod identifikaΦnφm Φφslem 37.

Smazßnφ celΘ tabulky

Pokud se nßm n∞jakß tabulka znelφbφ, m∙₧eme ji i s jejφm obsahem smazat pomocφ p°φkazu:
drop table jmΘno_tabulky
Dejte si na tuto operaci pozor. Tabulka je smazßna nenßvratn∞.

PHP3

V PHP3 se pro komunikaci s databßzφ MySQL pou₧φvajφ funkce zaΦφnajφcφ na mysql. P°ed ka₧dou komunikacφ se serverem je pot°eba se k n∞mu p°ipojit a po skonΦenφ prßce se zase odpojit. TypickΘ schΘma prßce s MySQL v PHP3 tedy vypadß takto:
<? mysql_Connect("localhost")?>

    prßce s databßzφ

<? mysql_Close()?>

V²pis zßznam∙ z tabulky

Abychom mohli vypsat zßznamy z tabulky, musφme je nejprve vybrat pomocφ SQL p°φkazu select. V PHP mßme k dispozici funkci mysql(jmΘno_databßze, SQL_p°φkaz), kterß jako v²sledek vracφ v²sledek SQL p°φkazu.

V p°φpad∞ p°φkazu select je v²sledkem seznam zßznam∙. Funkce v tomto p°φpad∞ vracφ ukazatel na seznam zßznam∙. Tyto zßznamy jsou pak dßle p°φstupnΘ pomocφ dalÜφch funkcφ. P°φklad dotazu v PHP:

<?
    $result = mysql("xaaabnn", "select * from adresar");
?>
PoΦet zßznam∙, kterΘ jsou v²sledkem poslednφho dotazu, m∙₧eme zjistit pomocφ funkce mysql_NumRows($result). Pon∞kud ucelen∞jÜφ ukßzka:
<?
    mysql_Connect("localhost");
    $result = mysql("xaaabnn", "select * from adresar");
    $pocet = mysql_NumRows($result);
    echo "V tabulce adresar je $pocet zßznam∙.";
    mysql_Close();
?>
JednotlivΘ polo₧ky zßznam∙, kterΘ jsou v²sledkem dotazu, jsou p°φstupnΘ pomocφ funkce mysql_Result(). Ta mß t°i parametry:
mysql_Result($result, Φφslo_zßznamu, polo₧ka)
Poznamenejme, ₧e zßznamy jsou Φφslovßny od 0. Pokud bychom tedy cht∞li vypsat obsah celΘ tabulky adresar, m∙₧eme na strßnku za°adit nßsledujφcφ k≤d:
<?
    mysql_Connect("localhost");
    $result = mysql("xaaabnn", "select * from adresar");
    $pocet = mysql_NumRows($result);
    echo "V tabulce adresar je $pocet zßznam∙.";
    echo "<P>";
    $i = 0;
    while ($i<$POCET):   EMAIL ) ENDWHILE; MYSQL_RESULT($RESULT, + ,  <BR> 
Ve smyΦce bychom mohli kolem dat z databßze umφstit nap°φklad HTML tagy pro vytvo°enφ tabulky a v²sledky tak prezentovat v p°ehlednΘ tabulce.

Pokud ji₧ nepot°ebujeme s v²sledkem dotazu dßle pracovat, je vhodnΘ uvolnit pam∞¥, ve kterΘ je v²sledek ulo₧en. To provedeme volßnφm funkce mysql_FreeResult($result).

Pokud v²sledkem volßnφ funkce mysql() nenφ seznam zßznam∙ (nap°. po SQL p°φkazech update, delete nebo insert), vracφ funkce 0. Pokud p°i provßd∞nφ SQL p°φkazu doÜlo k chyb∞, vratφ funkce hodnotu -1.

PoΦet zßznam∙, kter²ch se dotklo provedenφ operace update, delete nebo insert, vracφ funkce mysql_Affected_Rows().

P°idßnφ novΘho zßznamu do tabulky

P°edpoklßdejme, ₧e v prom∞nn²ch $jmeno, $prijmeni, $email a $narozen mßme ulo₧eny informace o Φlov∞ku, kterΘho chceme do adresß°e p°idat. Do prom∞nn²ch se ·daje mohly dostat nap°φklad z formulß°e, kter² vyplnil u₧ivatel. Strßnka, kterß tento formulß° obsluhuje, pak bude obsahovat tento k≤d pro p°idßnφ novΘho zßznamu do tabulky:
<?
    mysql_Connect("localhost");
    $result = mysql("xaaabnn", 
              "insert into adresar values (0, '$jmeno', '$prijmeni', " +
              "'$email', '$narozen')");
    if ($result==0):
        echo "Do adresß°e byl ·sp∞Ün∞ p°idßn nov² zßznam.";
    else:
        echo "A sakra! Nov² zßznam se do adresß°e nepoda°ilo p°idat.";
    endif;
    mysql_Close();
?>    

ZruÜenφ zßznßmu v tabulce

P°edpoklßdejme, ₧e identifikaΦnφ Φφslo zßznamu, kter² chceme smazat, mßme ulo₧eno v prom∞nnΘ $id. Vymazßnφ pak v PHP provedeme takto:
<?
    mysql_Connect("localhost");
    $result = mysql("xaaabnn", "delete from adresar where id=$id");
    if ($result==0):
        echo "Zßznam se poda°ilo ·sp∞Ün∞ vymazat.";
    else:
        echo "Zßznam nelze vymazat, do povrchu pevnΘho disku je vyryt.";
    endif;
    mysql_Close();
?>    

Zm∞na zßznßmu v tabulce

P°edpoklßdejme, ₧e u Φlov∞ka, jeho₧ $id znßme, chceme zm∞nit e-mailovou adresu na hodnotu prom∞nnΘ $email:
<?
    mysql_Connect("localhost");
    $result = mysql("xaaabnn", 
                    "update adresar set email='$email' where id=$id");
    if ($result==0):
        echo "Zßznam se poda°ilo ·sp∞Ün∞ aktualizovat.";
    else:
        echo "Zßznam nelze aktualizovat, do povrchu pevnΘho disku je vyryt.";
    endif;
    mysql_Close();
?>    

Aplikace "adresar"

Nynφ toho ji₧ vφme dost, abychom mohli pomocφ n∞kolika .phtml strßnek implementovat aplikaci pro prßci s adresß°em.

index.phtml

Hlavnφ strßnka celΘho adresß°e umo₧≥uje do formulß°e zadat filtr, kter² urΦuje zßznamy, kterΘ se majφ zobrazit. O zobrazovßnφ zßznam∙ se starß stejnß strßnka a proto formulß° obsahuje odkaz znovu na strßnku index.phtml.

Ve filtru m∙₧eme pou₧φvat hv∞zdiΦku pro nahrazenφ libovolnΘ sekvence znak∙. V PHP pak vÜechny hv∞zdiΦky p°evedeme na znak '%', kter² se pou₧φvß v SQL pro zastoupenφ libovolnΘ skupiny znak∙.

Kdy₧ generujeme v²pis adresß°e, p°idajφ se ke ka₧dΘmu zßznamu dva odkazy, kterΘ vedou na strßnky zajiÜ¥ujφcφ zm∞nu a smazßnφ zßznamu. Odkazy majφ v sob∞ rovnou zakomponovßno id zßznamu, kterΘho se operace t²kß.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
    <TITLE>Adresar - Uvodni stranka</TITLE>
</HEAD>
<BODY>
<H1>Adresar - vyhledavani</H1>

<H2>Zadejte filtr pro hledani v databazi:</H2>

<?
    /* Pocatecni prihlaseni ke strance ? */
    if ($jmeno=="" && $prijmeni=="" &&
        $email=="" && $narozen=="") { $firsttime="true"; };
    
    /* Inicializace filtru pro prazdna pole */
    if ($jmeno=="") { $jmeno="*"; };
    if ($prijmeni=="") { $prijmeni="*"; };
    if ($email=="") { $email="*"; };
    if ($narozen=="") { $narozen="*"; };
?>

<FORM ACTION=index.phtml METHOD=GET>
<TABLE>
<TR><TD>Jmeno:	<TD><INPUT TYPE=TEXT NAME=jmeno VALUE="<?echo $jmeno?>" SIZE=40>
<TR><TD>Prijmeni:<TD><INPUT TYPE=TEXT NAME=prijmeni VALUE="<?echo $prijmeni?>" SIZE=40>
<TR><TD>E-mail:	<TD><INPUT TYPE=TEXT NAME=email VALUE="<?echo $email?>" SIZE=40>
<TR><TD>Narozen:<TD><INPUT TYPE=TEXT NAME=narozen VALUE="<?echo $narozen?>" SIZE=10>
</TABLE>
<BR><INPUT TYPE=SUBMIT VALUE="Prohledej adresar">
</FORM>

<FORM ACTION=new.phtml METHOD=GET>
<INPUT TYPE=SUBMIT VALUE="Pridej novou adresu">
</FORM>

<?
    if ($firsttime!="true"):
?>

<HR>
<H2>Vysledky prohledavani</H2>

<TABLE>
<TR><TH>Jmeno<TH>Email<TH>Datum narozeni<TH>Uprava<TH>Smazani
<?
	mysql_Connect("localhost");
	/* prevod * na % pro operator like */
         $_jmeno = ereg_replace("\*", "%", $jmeno);
         $_prijmeni = ereg_replace("\*", "%", $prijmeni);
         $_email = ereg_replace("\*", "%", $email);
         $_narozen = ereg_replace("\*", "%", $narozen);
	$result = mysql("jkj", "select * from adresar where " +
		"jmeno like '$_jmeno' and prijmeni like '$_prijmeni' and " +
		"email like '$_email' and narozen like '$_narozen'");
	$num = mysql_NumRows($result);
	if ($num==0):
	    echo "<TR><TH COLSPAN=5>Dotazu nevyhovuje zadna adresa!\n";
	else:
	    $i = 0;
	    while ($i<$num):
		echo "<TR><TD>" + mysql_Result($result, $i, "jmeno") + " " +
		     mysql_Result($result, $i, "prijmeni");
	 	echo "<TD>" + mysql_Result($result, $i, "email");
	 	echo "<TD>" + mysql_Result($result, $i, "narozen");
	 	echo "<TD><A HREF='edit.phtml?id=" + 
		     mysql_Result($result, $i, "id") + "'>Uprav</A>";
	 	echo "<TD><A HREF='delete.phtml?id=" + 
		     mysql_Result($result, $i, "id") + "'>Smaz</A>";
		$i++;
	    endwhile;
	endif;
	mysql_Close();
?>
</TABLE>

<?
    endif;
?>

</BODY>
</HTML>    

new.phtml

Tato strßnka obsahuje formulß°, kter² se po vypln∞nφ poÜle skriptu add.html -- ten se postarß o samotnΘ p°idßnφ zßznamu do tabulky.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
    <TITLE>Adresar - Pridani nove adresy</TITLE>
</HEAD>
<BODY>
<H1>Adresar - pridani nove adresy</H1>

<H2>Zadejte novou adresu:</H2>

<FORM ACTION=add.phtml METHOD=GET>
<TABLE>
<TR><TD>Jmeno:	<TD><INPUT TYPE=TEXT NAME=jmeno SIZE=40>
<TR><TD>Prijmeni:<TD><INPUT TYPE=TEXT NAME=prijmeni SIZE=40>
<TR><TD>E-mail:	<TD><INPUT TYPE=TEXT NAME=email SIZE=40>
<TR><TD>Narozen:<TD><INPUT TYPE=TEXT NAME=narozen SIZE=10>
</TABLE>
<BR><INPUT TYPE=SUBMIT VALUE="Pridej adresu">
</FORM>

<FORM ACTION=index.phtml METHOD=GET>
<INPUT TYPE=SUBMIT VALUE="Zpet">
</FORM>

</BODY>
</HTML>    

add.phtml

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
    <TITLE>Adresar - Vysledek pridani adresy</TITLE>
</HEAD>
<BODY>
<?
	mysql_Connect("localhost");
	$result = mysql("jkj", "insert into adresar values (0, '$jmeno'," +
		  "'$prijmeni', '$email', '$narozen')");
	if ($result==0):
	    echo "<H1>Nova adresa byla uspesne pridana</H1>";
	else:
	    echo "<H1>Novou adresu se nepodarilo pridat</H1>";
	endif;
	mysql_Close();
?>
<A HREF=index.phtml>Adresar</A>

</BODY>
</HTML>    

delete.phtml

Smazßnφ zßznamu zadanΘho pomocφ parametru id:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
    <TITLE>Adresar - Vysledek smazani adresy</TITLE>
</HEAD>
<BODY>
<?
	mysql_Connect("localhost");
	$result = mysql("jkj", "delete from adresar where id=$id");
	if ($result==0):
	    echo "<H1>Adresa byla uspesne smazana.</H1>";
	else:
	    echo "<H1>Adresu se nepodarilo smazat.</H1>";
	endif;
	mysql_Close();
?>
<A HREF=index.phtml>Adresar</A>

</BODY>
</HTML>    

edit.phtml

Tato strßnka obsahuje formulß° se stßvajφcφm obsahem zßznamu s urΦit²m id. Po ·pravßch se obsah formulß°e odeÜle skriptu update.phtml, kter² se postarß o zm∞nu zßznamu v tabulce.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
    <TITLE>Adresar - Zmena adresy</TITLE>
</HEAD>
<BODY>
<H1>Adresar - Zmena adresy</H1>

<H2>Opravte udaje v adrese:</H2>
<?
	mysql_Connect("localhost");
	$result = mysql("jkj", "select * from adresar where id='$id'");
	$jmeno = mysql_Result($result, 0, "jmeno");
	$prijmeni = mysql_Result($result, 0, "prijmeni");
	$email = mysql_Result($result, 0, "email");
	$narozen = mysql_Result($result, 0, "narozen");
	mysql_Close();
?>

<FORM ACTION=update.phtml METHOD=GET>
<TABLE>
<TR><TD>Jmeno:	<TD><INPUT TYPE=TEXT NAME=jmeno VALUE="<?echo $jmeno>" SIZE=40>
<TR><TD>Prijmeni:<TD><INPUT TYPE=TEXT NAME=prijmeni VALUE="<?echo $prijmeni>" SIZE=40>
<TR><TD>E-mail:	<TD><INPUT TYPE=TEXT NAME=email VALUE="<?echo $email>" SIZE=40>
<TR><TD>Narozen:<TD><INPUT TYPE=TEXT NAME=narozen VALUE="<?echo $narozen>" SIZE=10>
</TABLE>
<BR><INPUT TYPE=HIDDEN NAME=id VALUE=<?echo $id>>
<INPUT TYPE=SUBMIT VALUE="Proved zmenu udaju">
</FORM>

<FORM ACTION=index.phtml METHOD=GET>
<INPUT TYPE=SUBMIT VALUE="Zpet">
</FORM>

</BODY>
</HTML>    

update.phtml

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
    <TITLE>Adresar - Vysledek zmeny adresy</TITLE>
</HEAD>
<BODY>
<?
	mysql_Connect("localhost");
	$result = mysql("jkj", "update adresar set jmeno='$jmeno', " +
		  "prijmeni='$prijmeni', email='$email', narozen='$narozen' " +
		  "where id=$id");		 
	if ($result==0):
	    echo "<H1>Adresa byla uspesne zmenena.</H1>";
	else:
	    echo "<H1>Adresu se nepodarilo zmenit.</H1>";
	endif;
	mysql_Close();
?>
<A HREF=index.phtml>Adresar</A>

</BODY>
</HTML>    

© Jirka Kosek, 1997-98