簡體   English   中英

從不同的表中獲取最新更新MYSQL + PHP

[英]Fetch latest updates from different tables MYSQL +PHP

我想為我的網頁制作最新的更新腳本。 我的MySQL數據庫中有幾個表:

表格:

  • 最新更新
  • 圖片
  • gallery_images
  • profile_info
  • 問題

例:

  • User1將新圖像添加到“圖像”表中
  • User2在“問題”表中添加新問題
  • User1將更改的個人資料信息添加到“個人資料信息”表中

所有這些表都包含與特定用戶連接的user_id。

現在,當某些用戶更新或向任何這些表中插入新行時,使此狀態更新腳本最佳的解決方案是什么

我想要某種腳本說:

  • User1已將新圖像添加到他的畫廊
  • User2創建了新問題
  • User3更改了他的個人資料信息

是要創建另一個表,還是在上述任何表中插入每個新表,還是在表中插入更新,還是嘗試進行某種SQL查詢以聯接表並讀取最新的表?

如果第二種選擇最好,請舉個例子嗎?

切爾茲

使用字段創建新表user_updates (或其他一些表):

  • id (autoinc,primary)
  • id_user
  • id_dest (目標表I​​D)
  • table_dest (目標表名稱)
  • 動作 (修改/創建)
  • 更改 (時間戳,發生時)

然后,您可以從該表中檢索所有最新行,並顯示最新更新。 您還可以將此表連接到“真實”數據,並顯示已修改的內容。

最簡單的方法是創建一個新表,該表將記錄創建/編輯事物的時間。 如果您喜歡較難的路線,則可以將每個部分分解為自己的SQL查詢,並按最新的SQL時間戳對其進行排序。

例如,顯示圖像的最新更新:

$sql="select * from images ORDER BY TIMESTAMP ASC";
$stmt = $connection->prepare($sql);
$stmt->execute();
$res = $stmt->get_result();
$latestimages = $res->fetch_array(MYSQLI_ASSOC);
echo $latestimages['user'] . " has uploaded a new image!";

這樣做有一些好處,例如,如果頁面上的內容框每個都有自己的標題,例如“最新圖像”,“最新論壇帖子”,“最新博客更新”等,則可以使用與此類似的代碼,只需在SQL中添加一個LIMIT查詢。 (要顯示最新的5條結果,請添加LIMIT(限制為5))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM