首先使用整數表示消息狀態(title_text
應該類似於message_type
),數據庫會更快。
下一步:如果你想創建狀態系統,嘗試做一些如郵件系統,這將有這樣的字段:id
,from_id
,to_id
,message_type
,message
,time_stamp
,status
。您朋友的身份將被添加到該表像 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個月
所以是查詢不工作...? – 2012-01-13 07:53:06
nopes其顯示沒有結果,如果我使用或是visisble所有用戶 – 2012-01-13 07:53:57