こんにちは、別のテーブルから日付を選択する際に問題があります。基本的に私は次のようなテーブルを持っています
1) users table,
2)follow table,
3) photos table, etc.
写真から日付を選択しようとしていますが、うまくいきません。これが私のmysqlクエリです。ここでは、フォロワーが user_idであるフォロー テーブルからフォロワーを選択しています。
follower_photo.php
$the_user = mysql_query("SELECT * FROM users WHERE username = '$getuser'");
$tuser=mysql_fetch_array($the_user);
$isuser = mysql_num_rows($the_user);
$tu_id = $tuser['id'];
////users whos following Me
$followers = mysql_query("SELECT * FROM follow WHERE followers ='$tu_id' order by id desc");
$f_s_count = mysql_num_rows($followers);
ここでは、日付と次の id に基づいて写真を取得しています。
index.php
include('func/followers_photos.php');
if($f_s_count > '0')
{
while($uim = mysql_fetch_assoc($followers)){
$i_id = $uim['following'];
$followers_image = mysql_query("SELECT * FROM photos WHERE user_id = '$i_id' order by date");
$disimg = $fimage['img'];
$disid = $fimage['id'];
$distime = $fimage['date'];
$i_like=$fimage['likes'];
//$i_unlike=$fimage['down'];
$likes_ip = mysql_query("SELECT * FROM voting_ip WHERE mes_id_fk = '$disid'");
$ipadd = mysql_fetch_assoc($likes_ip);
$check_likes= $ipadd['mes_id_fk'];
$user_follow_details = mysql_query("SELECT * FROM users WHERE id = '$i_id'");
$ufde = mysql_fetch_assoc($user_follow_details);
$uiname = $ufde['username'];
$uinim = $ufde['img'];
$ip=$_SERVER['REMOTE_ADDR'];
終了括弧は html コードの後にあります。
上記のコードは機能しますが、ID に基づいてテーブルからデータを選択しているため、日付に基づいて写真を並べ替えることができません。
これが私がこれまでに試したことです。
$the_user = mysql_query("SELECT * FROM users WHERE username = '$getuser'");
$tuser=mysql_fetch_array($the_user);
$isuser = mysql_num_rows($the_user);
$tu_id = $tuser['id'];
////users whos following Me
$followers = mysql_query("SELECT * FROM follow,photos WHERE followers = photos.user_id order by photos.date desc");
$f_s_count = mysql_num_rows($followers);
上記のコードは機能しますが、次の ID からではなく、データベースからすべての写真を選択します。つまり、フォローしていないユーザーの写真も表示されるということです。
私が達成しようとしているのは、私がフォローしている人から選択し、写真テーブルに保存されている写真の日付で写真を並べ替えることです。私は本当に立ち往生しています、誰かが私を助けることができますか? あなたの返信は大歓迎です。私の悪い英語でごめんなさい。
編集
今、これは私が望むように機能しますが、画像を複数回表示します。
$followers = mysql_query("SELECT * FROM follow,photos WHERE photos.user_id = '$tu_id' and follow.followers = photos.user_id order by photos.date desc");
別の編集
これで画像が複数回表示されることはありませんが、新しい画像を投稿するたびに、IDに基づいて並べ替えられます。@GonGordon Linoffの提案を少し修正
SELECT distinct follow.*
FROM photos join
follow
on follow.followers = photos.user_id
WHERE photos.user_id = $tu_id
order by photos.date desc;