sql >> Databáze >  >> RDS >> Mysql

Jak vytvořit vláknové komentáře s 1 nebo 2 dotazy?

Pokud potřebujete pouze 2 úrovně, zde je způsob s jedním dotazem:

Váš stůl - id, parent_id, comment sloupce

Kód

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

V $threads budete mít všechna svá hlavní vlákna a $threads[$id]['replies'] drží všechny odpovědi. Vlákna jsou seřazeny - nejnovější =první, přidejte stránkování a můžete začít.



  1. Co je efektivnější:Více tabulek MySQL nebo jedna velká tabulka?

  2. RLIKE rozlišují velká a malá písmena

  3. Cizí klíče a NULL v mySQL

  4. MySQL Match Against s více hodnotami proti