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

Rekurzivní funkce pro komentáře a odpovědi PHP aplikace

Jádro problému je toto:

$comments = $commentClass->fetch_article_comments($article_id);

Předpokládám, že tato funkce někde vytváří a spouští SQL, což je podobné jako SELECT ... WHERE comments.article_id=$article_id . To nestačí – potřebujete něco jako

$comments = $commentClass->fetch_article_comments($article_id, $parent_id);

který se převádí do SQL podobně jako SELECT ... WHERE comments.article_id=$article_id AND comments.comment_parent ($parent_id>0)?"=$parent_id":"IS NULL"

Nyní můžete napsat svou funkci PHP:

function display_comments ($article_id, $parent_id=0, $level=0) {
  $comments = $commentClass->fetch_article_comments($article_id, $parent_id);
  foreach($comments as $comment) {
        $comment_id = $comment['comment_id'];   
        $member_id = $comment['member_id'];
        $comment_text = $comment['comment_text'];
        $comment_timestamp = timeAgo($comment['comment_timestamp']);  //get time ago

        //render comment using above variables
        //Use $level to render the intendation level

        //Recurse
        display_comments ($article_id, $comment_id, $level+1);
    }
}

A nakonec to zavolejte pomocí display_comments ($article_id);



  1. Použití klíčů a hodnot pole k vytvoření příkazu sql select

  2. Jaký je nejlepší způsob, jak stáhnout počáteční data databáze do aplikace pro iOS?

  3. PostgreSQL:platný vzorek přiřazení proměnné?

  4. Příkaz SQL - Jak lze zlepšit rychlost indexováním