0

I am creating a social site and users can upload replies to comment. They should also be able to delete those comments but I am having a problem doing that.

When I click the X button to delete the comment, I delete only the last comment uploaded. Or if I put the query inside of the while loop, I delete all of the comments. Can someone help me with this bug ?

$get_replies = $con->prepare("SELECT * FROM comment_replies WHERE comment_id = ? ");
$get_replies->bind_param("i", $comment_id);
$get_replies->execute();
$replies_result = $get_replies->get_result(); 

if ($replies_result->num_rows > 0) {

    while ($row = $replies_result->fetch_assoc()) {

        $reply_id = $row['reply_id'];
        $reply_body = $row['reply_body'];
        $reply_by = $row['reply_by'];
        $comment_id = $row['comment_id'];
        $date_added = $row['date_added'];
        $deleted = $row['deleted'];

        if ($deleted == 0) {

        //Timeframe
                $date_time_now = date("Y-m-d H:i:s");
                $start_date = new DateTime($date_added); //Time of post
                $end_date = new DateTime($date_time_now); //Current time
                $interval = $start_date->diff($end_date); //Difference between dates 
                if($interval->y >= 1) {
                    if($interval == 1){
                        $time_message = $interval->y . "y"; //1 year ago
                    }
                        else {

                            $time_message = $interval->y . "yrs"; //1+ year ago
                        }
                }
                        
                        else if ($interval-> m >= 1) {
                            if($interval->d == 0) {
                                $days = "";
                            }
                            else if($interval->d == 1) {
                                $days = $interval->d . "d";
                            }
                            else {
                                $days = $interval->d . "d";
                            }


                            if($interval->m == 1) {
                                $time_message = $interval->m . "mth";
                            }
                            else {
                                $time_message = $interval->m . "mth";
                            }

                        }
                        else if($interval->d >= 1) {
                            if($interval->d == 1) {

                                $time_message = $interval->d . "d";
                                //$time_message = "Yesterday";
                            }
                            else {
                                $time_message = $interval->d . "d";
                            }
                        }
                        else if($interval->h >= 1) {
                            if($interval->h == 1) {
                                $time_message = $interval->h . "h";
                            }
                            else {
                                $time_message = $interval->h . "h";
                            }
                        }
                        else if($interval->i >= 1) {
                            if($interval->i == 1) {
                                $time_message = $interval->i . "mins";
                            }
                            else {
                                $time_message = $interval->i . "mins";
                            }
                        }
                        else {
                            if($interval->s < 30) {
                                $time_message = "Just now";
                            }
                            else {
                                $time_message = $interval->s . "s";
                }
            }

            

        ?>

        <div class="replies_parent">

            <div class="reply_username"><a href="#" id="reply_username"><?php echo "$reply_by"; ?></a></div>

            <div class="reply_time"><p id="time_stamp"><?php echo "$time_message"; ?></p></div>

            <div class="body_div"><p id="body_replies"><?php echo "$reply_body"; ?></p></div>

        </div><br>

        <?php  

            if ($userLoggedIn == $reply_by) {

        ?>              

            <form target="frame" method='POST'>

                <!--<input type='hidden' name='reply_id' value='".htmlspecialchars($reply_id, ENT_QUOTES)."' />-->

                <input name='comment_id' value=$comment_id style='display: none' />
                
                <button onclick="afterDelete()" name="delete" class='delete_reply btn-danger' id="report-button" type="submit">X</button>

            </form>

        <?php

        }
        
        } else {

            echo "";
        }

    }

    if(isset($_POST['delete'])) {

        $query = $con->prepare("UPDATE comment_replies SET deleted = 1 WHERE reply_id = ? AND reply_by = ?");
        $query->bind_param("is", $reply_id, $userLoggedIn);
        $query->execute();
    }
}
Don John
  • 29
  • 5

0 Answers0