I’am making a query in which I want to select those records which when a user logged in cannot see but his friend can see it . i. e. a notification in which jhon doe updates his status and vikram should see it not john doe . can any one help in this
here is the query
select *
from notification
where title_text='Global Notification'
and user_id=3 and owner_user_id != 3 and is_seen=0
order by time_stamp desc
Here user id is the one who is logged in.
and owner_user_id is the one who made the status update
So when john doe made a update (owner_user_id) only vikram should see it (user_id) not johndoe
At first use integers for messages status (
title_textshould be something likemessage_type), it will be faster for database.Next step: if You want to create status system, try to do something like mail system, it’ll have fields like these:
id,from_id,to_id,message_type,message,time_stamp,status. Your friend’s status will be added to this table likeNULL,3,15,1,1,'blablabla','2012-01-13 11:44:00',0Next step get all notification (message_type=1, for example)
You’ll get all new(status=0) notifications(message_type=1) for current user(to_id=15)
If You want to create a public statuses, You shouldn’t check access to them in WHERE clause. Create array of users that You read and select their statuses You didn’t read(save read statuses to COOKIE):
This query will return all unread Your friends’ statuses in 1 month