2016-12-06 87 views
-1

我想制作某种活动饲料,但即时通讯有点卡住如何设置我的SQL查询或我应该做几个查询可以任意1指向我在正确的方向。活动饲料,PHP的mysql

我想输出数据库中的最后10次写入。例如,我将有一个包含用户和一个表格的表格。考虑这个例子。

users.id,users.firstname,users.joindate,users.profilepicture,users.picturesetdate

Posts.id,Posts.users_id,posts.message,post.postdate

我会想输出最近10次更改。例如

名字改变了他的profilepicture于2016年6月12日 姓发布消息,在2016年5月12日 名字加入在网站上2016年4月12日

我需要做的就是什么这个信息在同一个查询中,我需要将Firstname,Profilepicture和picturesetdate分组。名字,消息,postdate。名字,joindate

回答

1

您可以设置这件事很容易使用2个查询:

你可以先查询自己的帖子,让你需要的所有列:

$sql = "SELECT id, users_id, message, postdate from posts ORDER BY postdate DESC LIMIT 10"; 
$res_a = mysqli_query($mysqli, $sql) or die (mysqli_error($mysqli)); 

然后开始一个循环显示结果,并且在该循环中,您可以使用posts表中的'users_id'查询users表。

foreach ($res_a as $res) { 

// Get user ID from posts table 
$userid = $res['users_id']; 

// Query the users table 
$user_sql = "SELECT id, firstname, joindate, profilepicture, picturesetdate FROM users WHERE id = '$userid'"; 
$user_res = mysqli_query($mysqli, $user_sql) or die (mysqli_error($mysqli)); 
$user = $user_res->fetch_assoc(); 

然后,你可以每个结果只分配给一个变量:

$first_name = $user['firstname']; 
$profile_photo = $user['profilepicture']; 
// etc.. 
+0

决定虽然创建活动供稿感谢表 – Wouter