Kod
komentarz 1
odp do komentarza
odp do odpowiedzi do komentarza
kometarz 2
odp do komentarza 2
odp 2 do kometarza 2
...........
itd
odp do komentarza
odp do odpowiedzi do komentarza
kometarz 2
odp do komentarza 2
odp 2 do kometarza 2
...........
itd
czyli cos ala drzewko. Nie wiem jak zbudowac baze danych zeby ladnie to dzialalo. Tzn wiem jak to zrobic najprostszym sposobem ale to dosc mocno mogloby obciazyc baze danych. Taki obciazajacy sposob bylby np taki:
Mam tabele ze zdjeciami:
CREATE TABLE images ( image_id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, image_name VARCHAR(255) NOT NULL, ) CREATE TABLE comments ( comment_id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, image_id INT UNSIGNED NOT NULL, reply_to INT UNSIGNED NOT NULL DEFAULT 0, content TEXT NOT NULL, add_date INT(11) NOT NULL )
i teraz jak to bym tak wyswietlal:
zapytaniem bym pobieral powiedzmy 10 glownych komentarzy:
<?php function GetChilds(&$db, $parent_id, $actual_level){ $query = "SELECT * FROM comments WHERE reply_to=$parent_id ORDER BY add_date ASC"; $result = $db->Execute($query); while($row = $result->FetchRow($result)){ GetChilds($db, $row['comment_id'], $actual_level +1); } } $db = &$this->GetDB(); $query = "SELECT * FROM comments WHERE image_id=123 ORDER BY add_date DESC LIMIT 10"; $result = $db->Execute($query); while($row = $result->FetchRow($result)){ GetChilds($db, $row['comment_id'], 0); } ?>
tyle ze ten sposob nie jest zbyt wydajny bo generuje duza ilosc zapytan do bazy danych :/ ma ktos jakis lepszy pomysl??
