2012-01-13 55 views
0

我'製作中,我要選擇哪個當用戶登錄無法看到,但他的朋友可以看到這些記錄的查詢。一世。即jhon doe更新他的狀態的通知,vikram應該看到它而不是john doe。可以在這個MySQL的結果可以看出只有朋友id

這裏的任何一個幫助查詢

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 

這裏user id是誰在登錄的一個。 和owner_user_id是誰提出的狀態更新

所以之一,當李四做了更新(owner_user_id)僅維克拉姆應該看到它(user_id)不JOHNDOE

+0

所以是查詢不工作...? – 2012-01-13 07:53:06

+0

nopes其顯示沒有結果,如果我使用或是visisble所有用戶 – 2012-01-13 07:53:57

回答

1

首先使用整數表示消息狀態(title_text應該類似於message_type),數據庫會更快。

下一步:如果你想創建狀態系統,嘗試做一些如郵件系統,這將有這樣的字段:idfrom_idto_idmessage_typemessagetime_stampstatus。您朋友的身份將被添加到該表像 NULL,3,15,1,1,'blablabla','2012-01-13 11:44:00',0

下一步得到所有通知(message_type = 1,例如)

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

你會得到所有新的(狀態= 0)通知(message_type = 1)當前用戶(to_id = 15)

如果你想創建一個公共的狀態,你不應該檢查WHERE子句中對它們的訪問。創建你讀,並選擇其狀態的用戶的數組你沒看過(保存讀入狀態到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 
"); 

這個查詢將返回所有未讀你的好友狀態1個月

+0

感謝您幫助朋友對您的查詢的行爲我有一個很大的想法如何做到這一點。而不是implode我使用聯盟可以幫助我在這段代碼中似乎有錯誤... $ sql3 = mysql_query(「SELECT * FROM((''select * from notification where title_text ='Global Notification''user_id' = $ frnnid和'owner_user_id' = $ frnnid和'is_seen' = 0 ORDER BY'time_stamp'降序 ')聯盟(' SELECT * FROM通知,其中title_text = '全局通知' 和USER_ID = $ ID和owner_user_id = $ frnnid和is_seen = 0 by order_stamp desc'))通過Desc的通知順序「); – 2012-01-13 12:02:16

+0

'SELECT * FROM'TABLENAME'' – 2012-01-14 21:39:22

0
 

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 
 
+0

沒有朋友,這將僅獲取李四不其維克拉姆更新了他編輯的配置文件 – 2012-01-13 08:01:18

+0

一個做了更新,做了這樣的工作。 ..! – 2012-01-13 08:04:17

+0

在這種情況下,3維克拉姆,其右維克拉姆不seeying他的更新通知,但是當我chnage ID以6這是李四,李四也無法看到它????我之前試過thz,ny更多的ideads朋友,感謝回覆 – 2012-01-13 08:10:23