从不同的表MYSQL + PHP获取最新更新

时间:2014-02-24 12:42:38

标签: php mysql sql

我想为我的网页制作最新的更新脚本。 我的MySQL数据库中有几个表:

TABLES:

  • latest_updates
  • 图像
  • gallery_images
  • profile_info
  • 问题

示例:

  • User1将新图像添加到“图像”表
  • User2在“问题”表格中添加了新问题
  • User1在“个人资料信息”表
  • 中添加了他的个人资料信息

所有这些表都包含连接到某个用户的user_id。

现在,当某些用户更新或向这些表中的任何一个表插入新行时,制作此状态更新脚本的最佳解决方案是什么

我想有某种脚本说:

  • User1已将新图片添加到他的图库
  • User2创建了新问题
  • User3更改了他的个人资料信息

是否要在上面的任何表中创建另一个表和每个新插入,还要在该表中插入更新或尝试进行某种SQL查询以加入表并阅读最新的?

如果第二种选择是最好的,你能举个例子吗?

Cheerz

2 个答案:

答案 0 :(得分:0)

使用字段

创建新表user_updates(或其他内容)
  • id (autoinc,primary)
  • id_user
  • id_dest (目标表I​​D)
  • table_dest (目的地表名称)
  • 操作(修改/创建)
  • 已更改(时间戳,发生时)

然后,您可以从此表中检索所有最新行并显示最近的更新。您还可以将此表格加入“真实”数据并显示已修改的内容。

答案 1 :(得分:0)

最简单的方法是创建一个新表,记录创建/编辑事物的时间。如果您更喜欢更难的路由..我会将每个部分分解为它自己的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个结果,添加限制为5)