Bagwell
Bagwell

Reputation: 2226

Number of posts since last visit

I have a website where people can make posts and follow other users. I have a sidebar that has a value that keeps track of the number of posts that have been posted since your last visit.

I'm stuck thinking of how I should handle this. Should I create an entirely new table in the database called notifications that would hold the user's id and the number of posts since last visit, should I just add a column in the existing user table for this value, or should I use an entirely different method?

Thanks.

Upvotes: 0

Views: 139

Answers (3)

Eugen Rieck
Eugen Rieck

Reputation: 65264

First of all: Think, which object this is a property of. In your case, the count will differ from user to user, so we might assume, it is a user property.

We could hang it on the last login, but this would give us a wrong count, if the user is logged in for a long period (The user doesn't want to know the count since his last login, but since his last activity!).

So the easiest way could be to add a field to the users table, that holds the last post ID - We just SELECT MAX(id) FROM posts and update users.lastSeenPost with the result on every user action. We can then display MAX(post.id)-users.lastSeenPost as the new post count.

Upvotes: 1

Ignacio Ocampo
Ignacio Ocampo

Reputation: 2713

I suggest that you will create a cookie ($_COOKIE['lastPostId']) in each customer webbrowser with the LAST ID of your posts, and, when the user return, you will read $_COOKIE['lastPostId'] and query your database as SELECT * FROM posts WHERE id>lastPostId

Upvotes: 0

snwflk
snwflk

Reputation: 3517

Every post has a date recording when it was made.

Every user will have a date keeping track of when he/she logged in the last time.

By the following SQL statement you could ask the database to return the number of posts since the user logged in last:

SELECT COUNT(*) FROM `posts` WHERE `posts.post_date` > `user.lastlogin_date`

Upvotes: 0

Related Questions