活动源,php mysql

时间:2016-12-06 19:22:43

标签: php mysql

我想制作一种活动源,但我对如何设置我的sql查询有点困惑,或者我应该做几个查询可以任意指向我正确的方向。

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

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

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

我想输出最后10个更改。例如

Firstname于2016年6月12日更改了他的个人资料图片 Firstname在2016年5月12日发布了一条消息 名字于2016年4月12日加入该网站

我需要做什么才能在同一查询中获取此信息,我需要将Firstname,Profilepicture和picturesetdate分组。名字,消息,后期。名字,joindate

1 个答案:

答案 0 :(得分: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));

然后启动显示结果的循环,在该循环中,您可以使用' users_id'来查询用户表。来自帖子表。

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..