I've tried to work on a stored procedure using the this thread to create a depth-based infinite comment
Generating Depth based tree from Hierarchical Data in MySQL (no CTEs)
And I was able to successfully generate multiple comments, and it's child comments and the child comment's child comment and so on with a single query. My problem is how do I generate the child comment directly under the parent comment? The query that I've been using
CALL comment_procedure('6da6688bad307bb');
generated it in order of its depth, I've tried modifying it but I can't seem to generate the right result.
Do I need to edit my stored procedure or do I need a specific PHP code to have the desired output.
begin
declare v_done tinyint unsigned default 0;
declare v_depth smallint unsigned default 0;
create temporary table comment_hier(
 parent_id varchar(50), 
 cmmt_id varchar(50), 
 dateandtime datetime,
 depth smallint unsigned default 0
)engine = memory;
insert into comment_hier select parent_id, cmmt_id , date, v_depth from cmmt_sect where parent_id = c_cmmt_id;
create temporary table tmp engine=memory select * from comment_hier;
while not v_done do
if exists( select 1 from cmmt_sect p inner join comment_hier on p.parent_id = comment_hier.cmmt_id and comment_hier.depth = v_depth) then
    insert into comment_hier
        select p.parent_id, p.cmmt_id, date, v_depth + 1 from cmmt_sect p
        inner join tmp on p.parent_id = tmp.cmmt_id and tmp.depth = v_depth;
    set v_depth = v_depth + 1;          
    truncate table tmp;
    insert into tmp select * from comment_hier where depth = v_depth;
else
    set v_done = 1;
end if;
end while;
select 
 p.cmmt_id,
 p.content as comment,
 b.cmmt_id as parent_comment_id,
 b.content as parent_comment,
 comment_hier.dateandtime,
 comment_hier.depth
from 
 comment_hier
inner join cmmt_sect p on comment_hier.cmmt_id = p.cmmt_id
left outer join cmmt_sect b on comment_hier.parent_id = b.cmmt_id
order by comment_hier.depth;
drop temporary table if exists comment_hier;
drop temporary table if exists tmp;
end
