sql >> Database >  >> RDS >> Mysql

Hoe maak je Threaded-opmerkingen met een 1 of 2 query's?

Als u slechts 2 niveaus nodig heeft, is dit een manier met één vraag:

Uw tafel - id, parent_id, comment kolommen

Code

$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'];
  }
}

In $threads je hebt al je hoofdthreads en $threads[$id]['replies'] bevat alle antwoorden. De onderwerpen zijn gesorteerd - laatste =eerst, voeg wat pagina's toe en je bent klaar om te gaan.



  1. Het instellen van de variabele 'server-id' in MySQL werkt niet

  2. UPDATE meerdere tabellen in MySQL met LEFT JOIN

  3. Hoe het Query-resultaat in een variabele op te slaan met mysql

  4. MySqlParameter-typeconflict bij gebruik van Entity Framework met Pomelo