Máte aj vy svoje stránky? A na nich články? Minule som písal o hodnotení článkov, teraz si povieme o niečom pre autora článku ešte dôležitejšom: konkrétnu kritiku, návrhy, otázky a niekedy aj pochvaly, skrátene komentáre.

Táto aplikácia využíva PHP a MySQL. Aplikáciu nie je zložité vkladať na stránku, pretože využíva jednu MySQL tabuľku nezávisle od článkov. Jediné, čo bude mať s článkami spoločné, je určité ID, ktoré je pre každý článok jedinečné. Takto som začínal článok minulý a tak začínam i tento.

Vytvoríme si teda tabuľku:

komentare (
idclanku int,
autor varchar(200),
email varchar(200),
url varchar (200),
text text,
predmet varchar(100),
ncas bigint)

Myslím, že takáto jednoduchá tabuľka úplne postačuje. Teoreticky by sme mohli pridať niečo ako pole „nad“, čím by sme docielili toho, že komentáre by mali vždy svoj nadradený komentár a podľa toho by sa zväčšovalo odsadenie. Proste klasické fórum, ale myslím si, že k článkom nám bude úplne stačiť takéto niečo… Pole „idclanku“ musí byť, ako som písal, zhodné s nejakou hodnotou článku. Ďalej si budeme písať autora článku, jeho email, prípadnú stránku, predmet komentára a samotný text. A nemôžeme zabudnúť na identifikátor a zároveň údaj o čase, teda pole „ncas“.

Momentálne uvidíte hlavný skript komentare.php:

<?
mysql_connect(„localhost“, „MENO“, „HESLO“);
mysql_select_db(„DB“);
function komentare_list($id){
$s = mysql_query(„Select predmet, ncas, email, meno from komentare where idclanku = $id order by ncas desc“);
echo „<table><tr><td height=20>&nbsp;</td></tr></table>“;
echo „<div align=center><table bgcolor=black width=100% cellpadding=1 cellspacing=1 border=0>“;
echo „<tr><td height=16 bgcolor=#cccccc width=100% class=menuheader>&nbsp;Komentáre k článku („;
echo mysql_num_rows($s);
echo „)</td></tr>“;
if(mysql_num_rows($s)!=0):
while($e = mysql_fetch_array($s)):
echo „<tr><td bgcolor=#e5e5e5 class=menu>“;
echo „<a href=’mailto:“;
echo $e[„email“];
echo „‚>“;
echo $e[„meno“];
echo „</a> („;
echo date(„d.m.Y“, $e[„ncas“]);
echo „) : <b>“;
echo $e[„predmet“];
echo „</b>“;
echo „</tr></td>“;
endwhile;
endif;
echo „<tr><td height=16 bgcolor=#cccccc width=100% class=menuheader><center><a href=’komentare_ukaz.php?id=“;
echo $id;
echo „‚>Ukáž komentáre</a>&nbsp &nbsp; &nbsp; &nbsp; <a href=’komentar_pridaj.php?id=“;
echo $id;
echo „‚>Pridaj komentár</a>“;
echo „</td></tr>“;
echo „</table></div>“;
}
function komentare($id){
$s = mysql_query(„Select * from komentare where idclanku = $id order by ncas desc“);
echo „<table><tr><td height=20>&nbsp;</td></tr></table>“;
echo „<div align=center><table bgcolor=black width=100% cellpadding=1 cellspacing=1 border=0>“;
echo „<tr><td height=16 bgcolor=#cccccc width=100% class=menuheader>&nbsp;Komentáre k článku</td></tr>“;
if(mysql_num_rows($s)!=0):
while($e = mysql_fetch_array($s)):
echo „<tr><td bgcolor=#e5e5e5 class=menu>“;
echo „<a href=’mailto:“;
echo $e[„email“];
echo „‚>“;
echo $e[„meno“];
echo „</a> – <a href='“;
echo $e[„url“];
echo „‚>“;
echo $e[„url“];
echo „</a> („;
echo date(„d.m.Y“, $e[„ncas“]);
echo „) : <b>“;
echo $e[„predmet“];
echo „</b><br><br>“;
echo $e[„text“];
echo „</tr></td>“;
endwhile;
endif;
echo „<tr><td height=16 bgcolor=#cccccc width=100% class=menuheader><center><a href=’javascript:history.go(-1);‘>Späť na článok</a>&nbsp &nbsp; &nbsp; &nbsp; <a href=’komentar_pridaj.php?id=“;
echo $id;
echo „‚>Pridaj komentár</a>“;
echo „</td></tr>“;
echo „</table></div>“;
}
?>

Tento skript, dajme tomu že sa bude volať komentare.php, obsahuje všetko potrebné k behu programu. V skratke potrebujeme zistiť, či článok so zadaním ID vlastne nejaké komentáre má. Ak ich má, zobrazíme list týchto komentárov: zobrazíme meno a email autora, dátum pridania a predmet komentára. Keď má návštevník záujem, klikne si na „ukáž komentáre“ a môže si komentáre prezrieť. Takisto môže komentár pridať. Druhá funkcia robí vlastne to isté, s tým rozdielom, že zobrazuje aj url adresu kritika, a samozrejme aj text jeho komentára.

To by bolo nadnes všetko. Nabudúce si tento program dokončíme; ukážeme si, ako tieto komentáre vlastne používať, kedy ich používať a ako ich pridávať.

Starší komentáře ke článku

Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.

2 Příspěvků v diskuzi

  1. Ahoj, cital som tvoje clanky o kometároch a chcel by som sa ta spytat, teda poprosit o radu.. Robim si vlastnu stranku v HTML a chcel by som tam vlozit kometáre k clankom alebo ku fotogalerii no neviem ako presne na to.. vedel by si mi prosím ta poradit ako na to???

    Dakujem

    Jozef

Odpovědět