Sakshi Sharma
Sakshi Sharma

Reputation: 1472

mysql result to be seen only to friend id

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

Upvotes: 0

Views: 121

Answers (2)

Egor Sazanovich
Egor Sazanovich

Reputation: 5089

At first use integers for messages status (title_text should be something like message_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 like NULL,3,15,1,1,'blablabla','2012-01-13 11:44:00',0

Next step get all notification (message_type=1, for example)

SELECT * FROM 'my_messages' WHERE to_id=15 AND message_type=1 AND status=0 ORDER BY time_stamp DESC

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):

$myFriends = array(4,17,69,254,1,24); // users id
$iHaveRead = array(12,55,1245,1245,1243); // messages id


$myNotification = mysql_query("
SELECT * FROM 'my_notifications'
WHERE 
owner_user_id IN (".implode(',',$myFriends).") 
AND 
time_stamp > DATE_SUB(NOW(), INTERVAL 1 MONTH)
AND
id NOT IN (".implode(',',iHaveRead ).") 
ORDER BY time_stamp DESC
");

This query will return all unread Your friends' statuses in 1 month

Upvotes: 1

Sudhir Bastakoti
Sudhir Bastakoti

Reputation: 100175


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

Upvotes: 0

Related Questions