Stránka 1 z 1
HTML komentáře
Napsal: sob 17. srp 2013, 11:58
od esfilip
Ahoj, jak nejjednodušeji udělat komentáře na stránku?
Mám stránku kde mám nějaký produkt a k němu chci pod obrázek komentáře (produktu je více). Mám tam pod obrázkem tabulku o nějakých rozměrech kde chci aby se vypisovali z databáze SQL, nebo se komentáře dělají jinak než v SQL? třeba jen textový dokument? pokud ano tak jak?
Dále bych potřeboval taky funkční kód na to aby šli komentáře doplňovat. nějaký tlačítko a dále formulář (jméno, komentář). Řazení bych chtěl od nejnovějších po nejstarší. Stránky dělám v CSHTML.
předem děkuji
Re: HTML komentáře
Napsal: sob 17. srp 2013, 13:55
od Exp
Jestli to dobře chápu a ty chceš uživatelům dovolit vkládat komentáře pod nějaký objekt, tak běžný základ je PHP a SQL.
Funkční kód ti tu asi nikdo psát nebude, princip je ale jednoduchej a návodů se všude válí mraky.
Re: HTML komentáře
Napsal: sob 17. srp 2013, 15:06
od esfilip
Takže jedině v PHP? dobře nebude problém to z HTML dát do PHP. návod si najdu
Re: HTML komentáře
Napsal: sob 17. srp 2013, 15:59
od esfilip
tak sem si našel jeden návod, ale mám 2 problémy
1) umístění souboru se mi nedaří dostat tam kam chci (vytváří se pouze tam kde je xxx.php)
$cesta_souboru="log.txt"; // cesta k souboru TXT, do kterého se budou daný komentáře ukládat
$umisteni_scriptu=""; //umístění tohoto souboru
Zkoušel jsem /data/komentare/log.txt ale to nejde taky jsme zkoušel dat na začátek cesty ~/ ale nic
2) komentáře potřebuji k více produktům... jak určím pro jaký produkt to je když mám uděláno že na tu stránku s daným produktem se dostanu pomoci kodu:
@foreach(var row in db.Query(selectQueryString)){
<a href="@Href("/lang/cz/detail.cshtml", row.ID)"><img src="/upload/img/@row.img" width="200" height="100" hspace="5" vspace="5" style="border:5px outset @row.rate"/></a>}
takže nahoře v adrese mám pak
http://localhost:23065/lang/cz/detail.cshtml/7 tedy produkt č.7
Re: HTML komentáře
Napsal: ned 18. srp 2013, 10:57
od Exp
Dám ti dobrou radu - zapomeň na ukládání komentářů do texťáku a udělej to databázově.
Re: HTML komentáře
Napsal: ned 18. srp 2013, 15:30
od Broxik
Imo nemusi mit pristup k zadnemu. POkud musis pouzit soubor na skladovani commentu k produktu clanku atd.. tak to aspon delej nejako strukturovane. Treba CSV oddelene strednikem. Nezapomen ale replacovat strednik za specialni znak at se ti pak nerozhodi formatovani.
Co se tyka odkazu. Nemuzes sem hazet odkaz na svuj localhost. TO je jakoby tvuj server a s tou adresou vidis jen to co ty mas na pocitaci v ramci IIS nebo apache... Pokud chces nekomu neco ukazat sou 2 moznosti. Budto mas domenu, kterou nasmerujes na svoji IP adresu pak by to melo jit bez slozitosti a pak mas moznost si tam namyslet co chces s tim ze si dotycni musi do host vlozit IP a domenu... treba
www.testujurad.cz 192.168.1.1 s tim ze ta IP je venkovni ne vnitrni.... Tim pak rucne windows presmeruji na dane IP a zobrazi se jim tva stranka...
Re: HTML komentáře
Napsal: ned 18. srp 2013, 16:45
od esfilip
S tou adresou to mělo bejt jen jako že se mi produkty otevírají číselně za adresou. jinak co se týká toho že bych to měl udělat databázově je mi jasný ale nenašel sem nikde návod a v PHP fakt neumím takže bych potřeboval krok za krokem jak na to.
mám jednu hlavní stránku kde mám třeba 5 produktu... když kliknu třeba na produkt chleba tak se otevře stránka detail.cshtml/2 (ta 2=chleba) a tam mám obrázek, popis a taky tam chci okno s komentářema a s formulářem .... jméno a text. Ukládání do té databáze .... je mi jasný že to detail musím asi hodit z cshtml na php ale nevím kde vycucat ty kody aby to fungovalo na každý produkt nezávysle.
Re: HTML komentáře
Napsal: ned 18. srp 2013, 17:42
od Exp
Je to triviální, do toho texťáku (pokud ho tak moc chceš) budeš ukladat ID produktu a k němu komentář. Pokud to bude např. CSV jak navrhuje Broxik, tak nejjednodušší struktura souboru může vypadat následovně:
Kód: Vybrat vše
ID produktu;ID uživatele;komentář;
1;uživatel1;koment1;uživatel2;koment2;
2;uživatel1;koment1;
3;uživatel1;koment1;uživatel2;koment2;uživatel3;koment3;
atd.
Tedy v prvním sloupci je ID produktu, ke kterýmu se komentáře vztahujou. Komentář je pak uložen vždy spolu s ID uživatele, který komentář vložil. Pokud nejsi moc zdatný v operacích s textovýma řetězcema, může se struktura upravit tak, že na jednom řádku je vždy jeden komentář k jednomu produktu od jednoho uživatele (tedy obdobně jako to ukládají SQL DB).
Kód: Vybrat vše
ID produktu;ID uživatele;komentář;
1;uživatel1;koment1;
3;uživatel5;koment1;
8;uživatel54;koment1;
1;uživatel7;koment2;
Ještě jednou upozorňuju, že pokud máš možnost udělat to databázově, tak ukládání do texťáku je velice nešikovný řešení a dost možná strávíš víc času naučením se prací s textovýma řetězcema než by zabralo naučení několika základních DB dotazů.
Re: HTML komentáře
Napsal: ned 18. srp 2013, 17:57
od esfilip
Dobrá databáze tedy bude super a asi i pro orientaci časem. jak mám tedy postupovat? mám jednu jednoduchou databázi kde je ID, název, popis... mám další databáze kde mám ID, nick, text... teď mě tak napadá mohu pro komentáře použít podobný ne-li stejná kódy jako pro registraci produktu? jednoduchý formulář a jednoduchý zobrazení?
Re: HTML komentáře
Napsal: pon 19. srp 2013, 19:24
od esfilip
Tak už to z části mám, teď mám jiný problém a to s načítání komentářů. Mám databázi a v ní tabulku produkty kde je ID,jmeno,popis,atd.... takto těch produktu mám třeba 10. Mám další tabulku kterou mám pojmenovanou komentare. v ní mám ID,produkt,nick a text. Když vlezu na jeden z produktu třeba na 5 tak se mi otevře detail.cshtml/5 kde mám fotku, popis, název a také okno s komentářemi kde by se měli zobrazit komentáře z tabulky 2 a podle ID najde dotičné a vypíše je. Tohle by ještě fungovalo ale já potřebuji aby to nepřiřazoval podle ID ale podle "produkt" používám tyto kody:
var db = Database.Open("pokus");
var selectQueryString = "SELECT * FROM produkty WHERE Id=@0";
var selectQueryString2 = "SELECT * FROM komentare WHERE Id=@0";
var ProductId = UrlData[0];
var row = db.QuerySingle(selectQueryString, ProductId);
var row2 = db.QuerySingle(selectQueryString2, ProductId);
var jmeno= row.jmeno;
var popis= row.popis;
atd.....
var nick= row2.nick;
var text= row2.text;
zkoušel jsem třeba změnit:
var selectQueryString2 = "SELECT * FROM komentare WHERE Id=@0";
var selectQueryString2 = "SELECT * FROM komentare WHERE produkt=@0";
ale buď to nejde a nebo to má chybu
prostě potřebuji nějaký příkazem změnit načítání v tabulce 2 ze sloupce ID na produkt
předem děkuji
Re: HTML komentáře
Napsal: pon 19. srp 2013, 19:47
od Smith
Když už tak ...
Kód: Vybrat vše
var selectQueryString2 = "SELECT * FROM produkty WHERE Id=@0";
var selectQueryString2 = "SELECT * FROM komentare WHERE produkt=@0";
Neber to nějak ve zlém... ale v první řadě by ses měl naučit programovat (naučit se ovládat jazyk, ve kterém to děláš ... ASP.NET?), naučit se pracovat s SQL a databázemi.
Přijde mi, že tu blastlíš něco, a ani pořádně nevíš co.
Re: HTML komentáře
Napsal: pon 19. srp 2013, 19:58
od Exp
Nevim v čem to píšeš, přijde mi to jako .net, ve kterým nedělám, takže konkrétní řešení ti nenapíšu, nicméně obecně je princip jednoduchý.
Potřebuješ získat komentáře vztažený k produktu -
Kód: Vybrat vše
SELECT * FROM komentare WHERE produkt = _konkretni_produkt;
Nevim co se dosazuje za @0, ale začal bych tim, že bych si sestavil dotazy a zkoušel je přímo na databázi, jestli mi vůbec vrací to, co chci.
Jinak viz kolega, zdá se že vůbec nevíš co jednotlivý části kódu dělaj...
Re: HTML komentáře
Napsal: pon 19. srp 2013, 21:20
od esfilip
Ano moc tomu nerozumím ale už jsem udělal velký kus práce.
jak mohu přepsat tento příkaz "@foreach(var row2 in db.Query(selectQueryString2, ProductId))" v <body> na příkaz této podoby: var row2 = db.QuerySingle(selectQueryString2, ProductId);
a už by to mělo vše fungovat
