2013-09-10 36 views
1

我是PHP的新手程序員。如何對消息進行排序?

我有一個表中與用戶的簡單消息的網站,並與消息的另一表:

(date, from user, to users, message, primary key, subject). 

首先,我不知道這是已存儲的信息以正確的方式,所以請告訴我。

我很困惑的是消息的顯示。

我想要的網頁腳本:

  • 連接到數據庫
  • 認證用戶
  • 經歷的所有消息在消息表(最多可以到這裏)
  • 經過到用戶字段中,看看用戶是否是其中的一個(將其拆分爲數組,它們全都已被空格分隔)
  • 如果是,則檢查是否有其他消息具有在其相同的用戶的用戶字段
    • 如果是,則與其他人在他們的相同的用戶的用戶字段組它(可能在多維陣列的第二維度)
    • 否則把它到一個新的「基團」(與多維數組的下一個第一尺寸)

然後,我將只顯示多維陣列的第一維度的那些,和點擊時將顯示剩餘的消息(多維數組的所有第二維)在另一個地方。

如果有人能幫助我用這些步驟的一些代碼或鏈接到一個網站可以幫助,請這樣做。

+2

您的郵件表中包含「從用戶「和**」到用戶「**(複數)。對於其中的第二個,如果您將許多用戶的引用放在一列中,這將成爲一個真正的問題。這裏你需要一個多對多的表格。 – halfer

+0

更廣泛地說,就腳本的用途而言:您能用幾句話總結一下嗎?我認爲你說的是​​一個可能的解決方案,而不是實際的問題。例如,這個_might_試圖「顯示當前登錄用戶的收件箱」(即發送給他們的消息)。 – halfer

+0

是的。我試圖對它們進行排序 –

回答

2

要擴大Halfer的答案,問題在於您試圖在「至用戶」列中存儲多個內容。所以你最終會得到類似於用戶= 5,24,242的東西。這真的很難從數據庫中解析出來。

取而代之,將該列從該表中取出並創建一個名爲「消息收件人」的新表,其中具有「消息ID,用戶接收」。然後,你可以有多個行,該表將類似於:

1,5

1,24

1,242

...

+0

我明白你的意思,但它並不完全回答我的問題 –

+0

然而,它仍然是一個好主意 –

+2

事實上,這是要走的路。然後你可以使用'JOIN'和'ORDER BY'來獲取你的收件箱,按照你想要的方式進行過濾和排序。 – halfer