2016-12-06 4 views
-1

私はアクティビティフィードの並べ替えをしたいですが、私のSQLクエリを設定するにはちょっと固執しています。あるいは、いくつかのクエリーをany1が正しい方向に向けるようにする必要があります。アクティビティフィード、php mysql

私のデータベースに最後の10回の書き込みを出力します。たとえば、私はユーザーとテーブルを持つテーブルを持っています。この例を考えてみましょう。私がしたい

users.id、users.firstname、users.joindate、users.profilepicture、users.picturesetdate

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

最後の10回の変更を出力します。私は得るために行う必要があるでしょうどのような2016年4月12日

上のウェブサイトを入社例えば

ファーストネームは、2016年6月12日 ファーストネームの上に彼のprofilepictureを変えた2016年5月12日 ファーストネームにメッセージを投稿しましたこの情報は同じ質問で、私はFirstname、Profilepicture、およびpicturesetdateをグループ化する必要があります。ファーストネーム、メッセージ、postdate。 FIRSTNAME、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

関連する問題