Mysql
 sql >> база данни >  >> RDS >> Mysql

Рекурсивна функция за PHP приложение за коментар и отговор

Същността на проблема е следната:

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

Предполагам, че тази функция някъде създава и изпълнява SQL, който е подобен на SELECT ... WHERE comments.article_id=$article_id . Това не е достатъчно - имате нужда от нещо като

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

който се превежда в SQL подобно на SELECT ... WHERE comments.article_id=$article_id AND comments.comment_parent ($parent_id>0)?"=$parent_id":"IS NULL"

Сега можете да напишете вашата 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);
    }
}

И накрая го извикайте с 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. Писане на сложна MySQL заявка

  2. Изберете няколко колони от таблица и вмъкнете данни в друга таблица в различна база данни в PHP-MySQL

  3. [имейл защитен] инсталиране:`node-pre-gyp install --fallback-to-build`

  4. PDO bind_param е недефиниран метод

  5. array_push() срещу $array[] =.... Кое е най-бързо?