2013-07-05 22 views
1

我對MySQL和PHP相當陌生,但我慢慢地掌握了它。使用PHP和MySQL標記頁面

我正在使用配置文件頁面的網站上工作。我在我的數據庫中有一個用戶表,我也打算創建一個配置文件表。

在我解釋我的'問題'之前,我想說我沒有真正開始編碼嘗試解決方案。我喜歡在我開始之前計劃我的工作,特別是當它將變得複雜時。因此,我無法真正顯示任何代碼片段。

我想創建的是用戶配置文件的標記系統。即。讓配置文件所有者從現有列表中選擇關鍵字,並將其與他的配置文件頁面關聯。

琢磨充足和關係數據庫讀了後,我收集我應該通過創建兩個附加表開始:

1. tags (tag_id, tag_name) 
2. tag_rel (tag_id, user_id) 

,並創建不同的標籤用戶分配給它的每個配置文件之間的關係,在單獨行:

(Tag1, UserA) 
(Tag2, UserA) 
(Tag1, UserB) 

後來,當我搜索型材我只需選擇與特定TAG_ID所有user_ids。很簡單。

我的問題是插入或更改列表時,PHP和MYSQL查詢代碼。

我基本上希望用戶能夠從檢查列表或從現有標籤的下拉選擇列表(或任何等同物)中選擇,選中或取消選中他的選擇,然後發送以輸入它到數據庫。

我可以想象,使用foreach()函數和一個簡單的INSERT查詢可以很容易地實現所選標記的初始條目,並且可以從一個值的時間輸入數組。

但是,當用戶回去改變標籤,我將如何指示查詢保留一些標籤,刪除其他標籤,並插入新的標籤?什麼是最好的方法來做這樣的事情?

一個想法: 我應該刪除用戶在tag_rel中所有現有的行,並插入新的數組?

+1

當你處於規劃階段時,馬上說:這種方法是正確的,你可以按照。但是,這個網站並不是爲了提供代碼。我建議,如果知道你的方法很好,可以做一些編碼,如果他們願意的話,你可以提出進一步的問題。 – Voitcus

+0

我可以做所有事情直到我提到的最後一步。我根本沒有足夠的經驗或知識去思考可能的解決方案。我不知道如何開始。不過謝謝你肯定我的方向! – toms

回答

0

我會用這樣一個過程: 一開始你獲取一個用戶選擇了DB的代碼,並將其傳遞給數組(從tag_rel選擇其中USER_ID = $用戶id)

,那麼你會去在讓用戶操作陣列(添加新標籤,刪除舊的)

你最後會刪除舊的條目,並插入該數組中的完全新的提供

+0

感謝哥們,那就是我要做的 – toms

0

最簡單的方法是刪除tag_rel那個特定user_id的數據然後重新插入新數據s

+0

我剛剛得出這個結論!我會試試這個!謝謝 – toms