php - Mysql从不同的表中选择日期

标签 php mysql

伙计们,我在从另一个表中选择日期时遇到了问题。 基本上我有这样的表

 1) users table, 
 2)follow table, 
 3) photos table, etc. 

我正在尝试从照片中选择日期,但它不起作用。 这是我的 mysql 查询。在这里,我从关注表中选择 followers,其中 follower = the user_id

followers_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;

最佳答案

你试过这样的事情吗?

$followers = mysql_query("SELECT * FROM follow, photos 
WHERE follow.followers = photos.user_id and photos.user_id = '$i_id' 
order by photos.date desc"); 

关于php - Mysql从不同的表中选择日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18102967/

相关文章:

javascript - Cookies Javascript/PHP

php - 如何检查特殊字符php

mysql - max_allowed_pa​​cket 考虑了什么?

mysql - 设置 MySQL 以使用具有 EBS 的 Amazon AWS 实例上的另一个分区

mysql - 优化 MySQL 导入(将详细的 SQL 转储转换为快速的一个/使用扩展插入)

php - 为什么 Auth::attempt 在 Laravel 5.3 中总是返回 false?

php - 为什么我不能在 php mysql 中显示我的记录?

python - 如何将默认值写入列,其中默认值是从使用另一个列的函数创建的值?

c# - MySqlDataReader: DataTable.Fill(reader) 抛出 ConstraintException

php - 防止 JavaScript 输入到表单中或保存到数据库中