I am working on a php/mysql website which allows users to make posts, and other users to comment on them.
How can I create a notification that displays the number of new comments on a post?
What is the criateria for counting a comment as a new? Comment status? The try something like this:
$postid = isset($_GET['postid']) ? mysql_real_escape_string($_GET['postid']) : 0;
$sql = "SELECT COUNT(id) as total_comemnts FROM tbl_comments WHERE post_id=$postid AND comment_status=0";
Hi thank you for you response.
I want the comment to be marked as new until the user views the comment, how do I go about doing that?
Show us the comment table structure if you have the field for that?
This is the structure:
post_id (the post which is being commented on)
user_id (the user commenting on the post)
comment (the comment)
So you have to add a field/column which indicates the status of the comment. It can be boolean type having true/false or 0/1.
0 = Not viewed yet.
1 = Viewed.
So add a field:
And insert 0 value in it when adding/inserting new comments. And use the SQL I have provided above to query the number of new comments. When a comment is viewed then update the field/column comment_status with the value '1'.
Hi I am not sure if this would make sense, as each comment isn't inserted seperate for each user. So if the comment status is 1, it would be 1 for all users.
I don't know what you mean but seeing your table structure, each comment will be inserted as a separate comment for the post. Otherwise why should the post_id and user_id are needed in the table.
Lets see if I grok this.
You are the original poster and you make a post at 1:00 pm.
Lets say for arguments sake you get a comment made every hour on the hour after that, starting at 2.00pm
So you go back at 3:15pm and you see "you have 2 new replies".
You then go away and come back at 6.15pm and you see a message "you have 3 new replies".
Is that what you are after?