Autor | Zpráva | ||
---|---|---|---|
slon_cz Profil |
#1 · Zasláno: 6. 2. 2018, 16:41:47
Zdravim, udelal jsem si script na komentare k clankum, ale nenapada me, jak udelat odpovedi na komentare? Respektive bude jeden komentar a pod nim odpovedi na ten dany komentar. Script si dokazu napsat sam, jen potrebuji poradit po logicke strance, jak by to melo fungovat. Děkuji
|
||
Taps Profil |
#2 · Zasláno: 6. 2. 2018, 16:58:52
slon_cz:
musíš zachytávat id rodičovského komentáře, pro který je napsána odpověď |
||
Keeehi Profil |
#3 · Zasláno: 6. 2. 2018, 17:08:17
slon_cz:
Ještě záleží, zda chceš mít stromovou strukturu kde půjde komentovat cokoli, nebo jen omezenou, jako má třeba facebook, kde jsou jen dvě úrovně komentářů. ID rodičovského komentáře však budeš potřebovat tak jako tak. |
||
slon_cz Profil |
#4 · Zasláno: 6. 2. 2018, 17:12:12
Už teď mám v databázi u komentáře řádek, kde uložím id komentáře, ke kterému je vázaná odpověď. Bude to jen hlavni komentar -> komentare k hlavnimu komentari. Problem nastava ve vypisovani, momentalne je vypisuji podle data (nejnovejsi dole hned nad inputem pro pridani komentare), ale jak vypsat ty podkomentare k danemu komentari? To u kazdyho komentare zjistovat, zda ma komentar nejake podkomentare a pripadne je vypisovat dalsim while z databaze? To se mi zda moc "prasacky".
|
||
Kajman Profil |
Pokud budou mít hlavní komentáře ve sloupci s odkazem na rodiče null a bude jen jedna úroveň zanoření, tak můžete řadit takto.
select k.* from komentare k left join komentare hlavni on k.id_hlavni=hlavni.id where k.clanek_id=42 order by coalesce(hlavni.cas,k.cas), coalesce(k.id_hlavni,k.id), k.cas, k.id Pokud ale máte postgresql nebo novější mariadb, lze to napsat obecně bez omezení úrovní a lépe. Mysql ale stromové dotazy zatím neumí. Edit: A pokud vždy platí, že větší id je větší čas, tak ani nemusíte tabulku linkovat... select k.* from komentare k where k.clanek_id=42 order by coalesce(k.id_hlavni,k.id), k.id |
||
slon_cz Profil |
#6 · Zasláno: 6. 2. 2018, 19:32:58
omlouvmam se, ale nechapu ten sql prikaz, tedy pokud mam tabulku clanky_komentare, struktura autor-obsah-id_clanku-hlavni_komentar-datum-id
|
||
Kajman Profil |
#7 · Zasláno: 6. 2. 2018, 19:39:45
Pro článek 42 by dotaz měl být
select k.* from clanky_komentare k where k.id_clanku=42 order by coalesce(k.hlavni_komentar,k.id), k.id V php si pak budete kontrolovat, zda je hlavni_komentar vyplněný - v tom případě zařídíte odsazení. |
||
slon_cz Profil |
#8 · Zasláno: 6. 2. 2018, 19:46:58
Skvěle, toto jsem přesně hledal, jen jsem nevěděl ten sql příkaz, ještě jednou díky :)
|
||
Časová prodleva: 7 let
|
0