Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Funkcja rekurencyjna do komentowania i odpowiedzi aplikacji PHP

Sedno problemu polega na tym:

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

Zakładam, że ta funkcja gdzieś tworzy i uruchamia SQL, co jest podobne do SELECT ... WHERE comments.article_id=$article_id . To nie wystarczy - potrzebujesz czegoś takiego jak

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

co przekłada się na SQL podobnie jak SELECT ... WHERE comments.article_id=$article_id AND comments.comment_parent ($parent_id>0)?"=$parent_id":"IS NULL"

Teraz możesz napisać swoją funkcję 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);
    }
}

I na koniec wywołaj to za pomocą display_comments ($article_id);



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zadeklaruj błąd składni w MYSQL Workbench

  2. Ten sam klucz obcy w wielu tabelach

  3. Obróć tabelę i wyświetl uporządkowane szeregi czasowe

  4. Google wykresy ciągłą oś X z tablicy php

  5. Jak zainstalować TYLKO MySQL na Debianie GNU/Linux 9 (stretch) bez MariaDB?