[英]update database with new info but keep old info aswell
如何使用新信息更新數據庫,同時又保留舊信息?
我的目的是要有一個收藏夾按鈕,單擊該按鈕會將項目ID添加到成員收藏夾列表中,這樣他們就可以調用fav.php?fav = janedoe之類的東西,並列出其收藏夾列表。
我知道如何添加按鈕並從數據庫中獲取項目ID,我只需要運行更新的mysql查詢以及創建數據庫列時的“類型”。
該行內的信息將如下所示
1,12,14,15,34,46,74
然后,如果成員想要添加項目98,它將更新為
1,12,14,15,34,46,74,98
最后增加98。
我意識到這是一篇“您能為我做這件事”的帖子,但是我不知道從哪里開始。
您應該創建一個名為以下內容的新表:
MembersFavoritePage:
MemberId
。 PageId
。 然后,只要用戶將頁面標記為收藏頁面,就在該表中進行插入。
如果您確實想要維護字符串,則可以在查詢中執行以下操作:
UPDATE `table`
SET `fav` = CONCAT(`fav`, ",98")
WHERE `id` = 1234;
或在PHP中執行concat並進行更新-即先獲取現有字符串-但這意味着2個查詢。
但是最好使用@MahmoudGamal建議的單獨表。 由於很難從中“刪除”項目,因此您需要在PHP端進行操作。
如何創建一個表“收藏夾”,您可以在其中存儲ID和將其添加到他的收藏夾列表的用戶?
ID | USER_ID
------------
5 | user_1
6 | user_1
8 | user_2
6 | user_2
select ID from favs where USER_ID = "user_1"
這將獲得user_1的頁面ID。
請記住,如果用戶需要添加/刪除收藏夾頁面,則需要管理該表的插入/更新/刪除。
一個更簡單的解決方案是在用戶的詳細信息中添加一個收藏頁面字段
USER_ID| FAVS
-------|-----
user_1 | 5*6
user_2 | 8*6
通過使用此解決方案,您將能夠輕松解析favs字段並獲取有關頁面的信息(在這種情況下,您只需要解析字符串)即可。
當您需要從用戶收藏夾列表中更新或刪除任何頁面時,只需解析字符串,刪除要刪除的頁面ID或將新頁面附加到字符串即可。
在這種情況下,缺點是您將無法輕松找到收藏夾頁面(最終將使用LIKE構造)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.