繁体   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