sql >> データベース >  >> RDS >> Mysql

1つまたは2つのクエリでスレッドコメントを作成するにはどうすればよいですか?

    2つのレベルのみが必要な場合は、1つのクエリで次のようになります。

    あなたのテーブル -id, parent_id, comment

    コード

    $rows = mysql_query('
      select *
      FROM
        comments
      ORDER BY
        id DESC');
    
    $threads = array();
    foreach($rows as $row) {
      if($row['parent_id'] === '0') {
        $threads[$row['id']] = array(
          'comment' => $row['comment'],
          'replies' => array()
        );
      } else {
        $threads[$row['parent_id']]['replies'][] = $row['comment'];
      }
    }
    

    $threads内 すべてのメインスレッドと$threads[$id]['replies']があります すべての返信を保持します。スレッドはソートされています-latest=最初に、ページングを追加すれば準備完了です。



    1. PHPとMySQLでタイムゾーンの問題がある

    2. 600万行のテーブルでのMysqlのパフォーマンス

    3. Visual Studio Server Explorerはカスタムデータベースプロバイダーをサポートしていますか?

    4. Oracleで文字列の日付を日時に変換する