What's new

Php robot help

loktoy

Eternal Poster
Joined
Oct 20, 2014
Posts
1,168
Solutions
2
Reaction
103
Points
497
Age
30
ok na po sya nag oouput na po sya ng reply o comment sa kanya content ang problima ko po is kapag nireload ko sya meron pa rin po nag papakita reply o comment na di dpat sakanya..ibig sabihin po may naliligaw na reply o comment lalo na yun mga latest comment o reply napupunta sa mga old content kapag nirerefresh o relod

ito code po sa replies.php

<?php
ob_start();
include "../partials/newnav.php";
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Homepage</title>
<link rel= "stylesheet" href="../css/bootstrap.css">
<link rel= "stylesheet" href="../css/style.css">
<script src="../js/bootstrap.bundle.js"></script>
<script src="../js/style.js"></script>
<script src="../ajax/sweetalert2.all.min.js"></script>
<script src="../ajax/jquery-3.7.0.min.js"></script>

</head>
<body>
<div class="container col-md-6 text-center">
<br>
<h1>WELCOME To My Thread!</h1>

<br>

<br>
</div>
<?php
if(isset($_GET['id'])){
$id_comment = $_GET['id'];
// Query to fetch the specific content based on the comment_id
$content_query = mysqli_query($con, "SELECT * FROM post WHERE comment_id = '$id_comment'") or die(mysqli_error());
$content_row = mysqli_fetch_array($content_query);


?>
<h6><?php echo $content_row['comment']; ?></h6>
<?php
$post_query = mysqli_query($con, "SELECT *, UNIX_TIMESTAMP() - date_created AS TimeSpent FROM post LEFT JOIN registration on registration.user_id = post.user_id ORDER BY comment_id DESC limit 1 ") or die (mysqli_error());
while($post_row = mysqli_fetch_array($post_query)){
$id = $post_row['comment_id'];
$upid = $post_row['user_id'];
$posted_by = $post_row['username'];
?>
<br>
<form method="post">

<div class="container col-md-6">
Comment:<br>
<input type="hidden" name="id" value="<?php echo $id; ?>">
<textarea name="comment_content" class="form-control" rows="4" cols="50" style="" placeholder=".........Type your comment here........" required></textarea>
<div class="form-group mt-2">
<input class="w-25" type="submit" name="comment" value ="Reply" style="background-color:#0D52C7;">
</div>
</div>
</form>

</br>
<?php

if (isset($_POST['comment'])){
$comment_content = $_POST['comment_content'];
$post_id=$_POST['id'];

mysqli_query($con,"insert into comment (comment,date_posted,user_id,comment_id) values ('$comment_content','".strtotime(date("Y-m-d h:i:sa"))."','$user_id','$post_id')") or die (mysqli_error());
header('Location: comment.php');
exit();
ob_end_flush();}
?>

<?php
$comment_query = mysqli_query($con, "SELECT *, UNIX_TIMESTAMP() - date_posted AS TimeSpent FROM comment INNER JOIN registration ON registration.user_id = comment.user_id WHERE comment.comment_id = '$id_comment' ORDER BY date_posted DESC") or die(mysqli_error());
while ($comment_row=mysqli_fetch_array($comment_query)){
$comment_id = $comment_row['id'];
$comment_by = $comment_row['username'];
?>
<div class="container col-md-6 bg-body-tertiary border rounded-3">
Comment by: <a href="#" style= "margin-left:10px; text-decoration:none;"> <?php echo $comment_by; ?></a>
<div class="" style="font-size:12px;">
<?php
$days = floor($comment_row['TimeSpent'] / (60 * 60 * 24));
$remainder = $comment_row['TimeSpent'] % (60 * 60 * 24);
$hours = floor($remainder / (60 * 60));
$remainder = $remainder % (60 * 60);
$minutes = floor($remainder / 60);
$seconds = $remainder % 60;
if($days > 0)
echo date('F d, Y - H:i:sa', $comment_row['date_posted']);
elseif($days == 0 && $hours == 0 && $minutes == 0)
echo "A few seconds ago";
elseif($days == 0 && $hours == 0)
echo $minutes.' minutes ago';
?>
<img src ="../images/hour.png" alt = "My hour" style ="width:12px;">
</div>


<div class="mb-3">
<?php echo $comment_row['comment']; ?>
</div>
</div>

<br>

<?php
}}}?>


<hr>

<?php
include "../partials/footer.php";
?>


</body>
</html>
 
Based on the code you provided, it seems that the issue lies in the way you retrieve and display comments. Currently, you are fetching comments based on the comment ID in the URL parameter ($_GET['id']). However, you are not filtering the comments by the specific content (post) that the comment belongs to. This is why you are getting comments from different contents when you reload the page.

To fix this issue, you need to modify your comment query to include a condition to filter comments based on the content (post) ID. Here's an example of how you can modify the comment query:

PHP:
$comment_query = mysqli_query($con, "SELECT *, UNIX_TIMESTAMP() - date_posted AS TimeSpent FROM comment INNER JOIN registration ON registration.user_id = comment.user_id WHERE comment.comment_id = '$id_comment' AND comment.post_id = '$post_id' ORDER BY date_posted DESC") or die(mysqli_error());

In the above query, I added an additional condition AND comment.post_id = '$post_id' to filter comments based on the specific post ID.

Make sure to replace $post_id with the actual variable that contains the post ID in your code. This variable should be set when you retrieve the content based on the comment ID ($content_row['post_id']).

With this modification, the comments displayed on the page should only be those that belong to the specific content (post) ID.
 
Based on the code you provided, it seems that the issue lies in the way you retrieve and display comments. Currently, you are fetching comments based on the comment ID in the URL parameter ($_GET['id']). However, you are not filtering the comments by the specific content (post) that the comment belongs to. This is why you are getting comments from different contents when you reload the page.

To fix this issue, you need to modify your comment query to include a condition to filter comments based on the content (post) ID. Here's an example of how you can modify the comment query:

PHP:
$comment_query = mysqli_query($con, "SELECT *, UNIX_TIMESTAMP() - date_posted AS TimeSpent FROM comment INNER JOIN registration ON registration.user_id = comment.user_id WHERE comment.comment_id = '$id_comment' AND comment.post_id = '$post_id' ORDER BY date_posted DESC") or die(mysqli_error());

In the above query, I added an additional condition AND comment.post_id = '$post_id' to filter comments based on the specific post ID.

Make sure to replace $post_id with the actual variable that contains the post ID in your code. This variable should be set when you retrieve the content based on the comment ID ($content_row['post_id']).

With this modification, the comments displayed on the page should only be those that belong to the specific content (post) ID.
ayaw pa rin po
 
ayaw pa rin po
I apologize for the confusion. Upon reviewing your code, I noticed that you are missing the code that retrieves the post ID from the database. To properly filter the comments based on the specific post, you need to retrieve the post ID and use it in the comment query. Here's the modified code:

Code:
<?php
if (isset($_GET['id'])) {
    $id_comment = $_GET['id'];
    // Retrieve the post ID from the database based on the comment ID
    $post_query = mysqli_query($con, "SELECT post_id FROM post WHERE comment_id = '$id_comment'") or die(mysqli_error());
    $post_row = mysqli_fetch_array($post_query);
    $post_id = $post_row['post_id'];
    
    // Query to fetch the specific content based on the comment_id
    $content_query = mysqli_query($con, "SELECT * FROM post WHERE comment_id = '$id_comment'") or die(mysqli_error());
    $content_row = mysqli_fetch_array($content_query);
    
    // Rest of your code...
    // Modify the comment query to include the post_id condition
    $comment_query = mysqli_query($con, "SELECT *, UNIX_TIMESTAMP() - date_posted AS TimeSpent FROM comment INNER JOIN registration ON registration.user_id = comment.user_id WHERE comment.comment_id = '$id_comment' AND comment.post_id = '$post_id' ORDER BY date_posted DESC") or die(mysqli_error());
    while ($comment_row = mysqli_fetch_array($comment_query)) {
        // Display the comments
    }
    // Rest of your code...
}
?>

In this modified code, I added the retrieval of the post ID from the database using a separate query before executing the comment query. Then, I included the condition AND comment.post_id = '$post_id' in the comment query to filter the comments based on the specific post ID.

Please replace the relevant parts of your code with this modification and see if it resolves the issue.
 

Similar threads

Back
Top