0

私は基本的に、ユーザーが他のユーザーのコメントにコメントできる単純なスレッドコメントシステムをコーディングしようとしています。コメントのレベルは1つだけです。

データベース内のコメントテーブルは次のようなものです。-id-text-timestamp-parent_id(NULLにすることができます)

私の質問は、コメントとその子(コメント)をどのように照会する必要があるかです。それらが配列内にどのように配置されるのか、そしてそれらを適切にループして出力する方法がわかりません。

あなたの助けは大歓迎です=)

4

2 に答える 2

2

深さが1レベルしかない場合は、すべてのコメントを取得して、必要な構造にまとめることができます。あなたはこのようなことをすることができます:

function get_comments()
{
    $sql = 'select * from comments order by timestamp';
    $result = $this->db->query($sql)->result();

    $comments = array();
    foreach ($result as $row)
    {
        if ($row->parent_id)
        {
            $comments[$row->parent_id]->children[] = $row;
        }
        else
        {
            $comments[$row->id] = $row;
            $comments[$row->id]->children = array();
        }
    }

    return array_values($comments);
}
于 2010-12-10T17:42:21.080 に答える
1

これを処理する方法については、かなり詳細な説明があります。

http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/

于 2010-12-10T16:08:20.303 に答える