php - Converting 2 Level Replies into Infinite Replies -
i trying convert replies 2 level infinite replies. if showed replies of replies, not replies of replies of replies , forth. nested.
code:
<? include 'connect.php'; $error = $_get['er']; ?> <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>group 5 waggle</title> <link rel="stylesheet" type="text/css" href="bootstrap/css/bootstrap.min.css" /> <link rel="stylesheet" type="text/css" href="font-awesome/css/font-awesome.min.css" /> <link rel="stylesheet" type="text/css" href="css/local.css" /> <script type="text/javascript" src="js/jquery-1.10.2.min.js"></script> <script type="text/javascript" src="bootstrap/js/bootstrap.min.js"></script> </head> <body> <div id="wrapper"> <? include 'nav.tmp'; ?> <? $sql = "select topic_id, topic_subject, topic_cat topics topics.topic_id = " . mysql_real_escape_string($_get['id']); $result = mysql_query($sql); if(!$result) { echo '<div class="well well-lg">the topic not displayed, please try again later.</div>'; } else { if(mysql_num_rows($result) == 0) { echo '<div class="well well-lg">this topic doesn′t exist.</div>'; } else { while($row = mysql_fetch_assoc($result)) { ?> <div class="jumbotron"> <h1><?=$row['topic_subject'];?></h1> <a href="reply.php?id=<?=$row['topic_id'];?>" class="btn btn-primary btn-sm">reply post</a> <!--<a href="topics.php?id=<?=$row['topic_cat'];?>">library</a>--> </div> <div id="page-wrapper"> <div class="row"> <div class="col-lg-12"> <div class="bs-example"> <div class="list-group"> <? if ($error == 'pr') { ?> <div class="alert alert-dismissable alert-danger"> <button type="button" class="close" data-dismiss="alert">×</button> <strong>oh snap!</strong> couldn't delete post. it's parent post child. child has deleted first. </div> <? } ?> <!-- <div class="jumbotron"> <h1>post one</h1> <div class="small"><span style="float: left"><a href="topics.html"><i class="fa fa-user"></i> olajide</a></span> <span style="float: right">july 16, 2015 <i class="fa fa-share-alt"></i></span></div> <p>lorem ipsum dolor sit amet, consectetur adipiscing elit. nam nec enim sit amet libero ultrices faucibus quis id purus. nam feugiat libero eget felis semper hendrerit in et nunc.</p> <button type="button" class="btn btn-primary btn-sm">reply post</button> </div> <div class="panel panel-default"> <div class="panel-heading"><a href="topics.html"><span style="float: left"><i class="fa fa-user"></i> nick</span></a> <span style="float: right"><i class="fa fa-share-alt"></i></span></div> <div class="panel-body"> plorem ipsum dolor sit amet, consectetur adipiscing elit. aliquam libero leo, bibendum id consectetur quis, pretium in metus. morbi non tempus tortor. sed libero est, euismod et velit eu, posuere maximus sem. sed tincidunt finibus condimentum. nam diam neque tincidunt egestas @ non massa. proin consequat non est quis tristique. fusce aliquet lacus sed urna tincidunt convallis. phasellus mattis lectus sed nunc ornare finibus. duis nec orci vitae risus vestibulum pulvinar sit amet tortor. proin in lacinia odio. etiam cursus ac elit sed scelerisque. sed egestas est sit amet venenatis facilisis. etiam @ fermentum eros, et sollicitudin libero. class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. sed neque risus, elementum et fermentum sit amet, euismod lectus. ut hendrerit vulputate arcu, id bibendum nibh venenatis ut. nam eu quam lorem. morbi eget varius velit. nulla dictum metus sit amet lorem posuere, @ sagittis tortor facilisis. nunc auctor, est @ gravida ultricies, dolor libero commodo nulla, eu aliquam nulla massa vitae odio. sed pellentesque eleifend dui, consectetur maximus neque lacinia nec. suspendisse quis quam ultrices, aliquet nulla quis, sagittis orci. vestibulum id ligula nec lorem rutrum efficitur. donec ac porta felis, sed aliquam justo. pellentesque gravida massa sem, non suscipit mi consectetur et. etiam posuere pharetra ante eget cursus. vivamus gravida eget metus sed facilisis. praesent eu sem orci. interdum et malesuada fames ac ante ipsum primis in faucibus. duis ullamcorper eros massa, @ tincidunt dui volutpat non. duis gravida, velit vitae consectetur ultrices, mi metus aliquam nisl, sed mattis ligula mauris commodo enim. cras magna risus, tristique eu orci rutrum, porta egestas felis. curabitur dignissim nunc sed ipsum commodo maximus. <br /> <br /> <button type="button" class="btn btn-primary btn-sm">reply post</button> </div> <div class="panel-footer"><span style="float: left" class="small">posted on: july 18, 2015</span> <span style="float: right"> </span></div> </div> --> <ul id="comments"> <? //fetch posts database $posts1_sql = "select posts.post_topic, posts.post_content, posts.post_id, posts.post_date, posts.post_by, posts.post_parent, posts.file_uploaded, users.user_id, users.user_name, users.user_pic posts left join users on posts.post_by = users.user_id posts.post_parent = 0 , posts.post_topic = " . mysql_real_escape_string($_get['id']); $posts1_result = mysql_query($posts1_sql); if(!$posts1_result) { echo '<div class="well well-lg">the posts not displayed, please try again later.</div>'; } else { while($posts1_row = mysql_fetch_assoc($posts1_result)) { ?> <li class="cmmnt"> <div class="avatar"><a href="profile.php?id=<?=$posts1_row['user_id'];?>"><img src="profilepics/<?=$posts1_row['user_pic'];?>" width="55" height="55" alt="avatar"></a></div> <div class="cmmnt-content"> <header><a href="profile.php?id=<?=$posts1_row['user_id'];?>" class="userlink"><span class="pubname"><?=$posts1_row['user_name'];?></span></a> <span class="pubdate text-uppercase"><?=date('f d, y h:i', strtotime($posts1_row['post_date']));?></span></header> <p><?=htmlentities(stripslashes($posts1_row['post_content']));?></p> <? $filename = htmlentities(stripslashes($posts1_row['file_uploaded'])); if($filename !=null) { ?> <p> <i class="fa fa-paperclip"></i> <a href="repository/<?=$filename?>" download="<?=$filename?>"><?=$filename?></a> </p> <? }?> <a class="btn btn-primary btn-xs text-uppercase" href="reply.php?id=<?=$row['topic_id'];?>&r=<?=$posts1_row['post_id'];?>" id="reply"><span class="glyphicon glyphicon-share-alt"></span> reply</a> <? if($_session['signed_in'] == true) { ?> <? if(($_session['user_id'] == $posts1_row['post_by']) | ($_session['user_level'] == 0)) { ?><a href="edit.php?id=<?=$posts1_row['post_id'];?>"><i class="fa fa-pencil-square-o"></i></a><? }?> <? if ($_session['user_level'] == 0) { ?> <a href="delete.php?id=<?=$posts1_row['post_id'];?>"><i class="fa fa-times-circle-o"></i></a><? } ?> <? } ?> </div> <? //fetch posts database $posts1id = mysql_real_escape_string($posts1_row['post_id']); $postid = mysql_real_escape_string($_get['id']); $posts2_sql = "select posts.post_topic, posts.post_content, posts.post_id, posts.post_date, posts.file_uploaded, posts.post_by, posts.post_parent, users.user_id, users.user_name, users.user_pic posts left join users on posts.post_by = users.user_id posts.post_parent = '$posts1id' , posts.post_topic = '$postid'"; $posts2_result = mysql_query($posts2_sql); if(!$posts2_result) { echo '<div class="well well-lg">the posts not displayed, please try again later.</div>'; //echo '<script>$(document).ready(function(){ $("#ee'.$posts1id.'").hide(); });</script>'; } else if(mysql_num_rows($posts2_result) == 0) { //echo '<script>$(document).ready(function(){ $("#ee'.$posts1id.'").hide(); });</script>'; } else { while($posts2_row = mysql_fetch_assoc($posts2_result)) { ?> <ul class="replies"> <li class="cmmnt"> <div class="avatar"><a href="profile.php?id=<?=$posts2_row['user_id'];?>"><img src="profilepics/<?=$posts2_row['user_pic'];?>" width="55" height="55" alt="avatar"></a></div> <div class="cmmnt-content"> <header><a href="profile.php?id=<?=$posts2_row['user_id'];?>" class="userlink"><span class="pubname"><?=$posts2_row['user_name'];?></span></a> <span class="pubdate text-uppercase"><?=date('f d, y h:i', strtotime($posts2_row['post_date']));?></span></header> <p><?=htmlentities(stripslashes($posts2_row['post_content']));?></p> <? $replyfilename = htmlentities(stripslashes($posts2_row['file_uploaded'])); if($replyfilename !=null) { ?> <p> <i class="fa fa-paperclip"></i> <a href="repository/<?=$replyfilename?>" download="<?=$replyfilename?>"><?=$replyfilename?></a> </p> <? }?> <a class="btn btn-primary btn-xs text-uppercase" href="reply.php?id=<?=$row['topic_id'];?>&r=<?=$posts2_row['post_id'];?>" id="reply"><span class="glyphicon glyphicon-share-alt"></span> reply</a> <? if($_session['signed_in'] == true) { ?> <? if(($_session['user_id'] == $posts2_row['post_by']) | ($_session['user_level'] == 0)) { ?><a href="edit.php?id=<?=$posts2_row['post_id'];?>"><i class="fa fa-pencil-square-o"></i></a><? }?> <? if ($_session['user_level'] == 0) { ?> <a href="delete.php?id=<?=$posts2_row['post_id'];?>"><i class="fa fa-times-circle-o"></i></a><? } ?> <? } ?> </div> </li> </ul> <? } }?> </li> <? } } } } } ?> </ul> </div> </div> </div> </div> </div> </div> </body> </html>
for database, have posts in 1 database:
post_id post_content post_date post_topic file_uploaded post_by post_parent 1 parent topic 07/06 1 1 0 2 child topic 07/06 1 1 1 3 sub-child 1 1 2 4 new topic 2 1 0
thereby sub-child grand child of parent topic. new topic thread , can have children, great grand children etc.
please help. hope understand.
there 2 methods know of store hierarchical data in relational database. first adjacency list, have above. second nest set. nested set, can retrieve entire branch of tree single query.
in either case, you'll need amount of recursion recreate tree in php after you've retrieved database.
Comments
Post a Comment