【问题标题】:SQL query join order by [closed]SQL查询连接顺序[关闭]
【发布时间】:2016-08-12 22:02:37
【问题描述】:

我正在制作和 Instagram 模仿,我需要制作一个提要。我有 2 个表“关注”和“帖子”。

这是“以下”数据库:

这是“帖子”数据库:

这是我尝试选择用户关注的人并将他们的帖子放入他们的提要的代码:

<?php

$username = $_SESSION['username'];
$sql = "SELECT username_follow FROM following WHERE follower = '$username'";
$rsu = mysql_query($sql, $conn);
while ($row = mysql_fetch_array($rsu)){
  $uername2 = $row[0];
  $sql2 = "SELECT pic, `time` FROM `Posts` WHERE username = '$uername2' ORDER BY `Posts`.`id` DESC";
  $res = mysql_query($sql2, $conn);
  //echo $row[0];
  while ($row2 = mysql_fetch_row($res)) {
    echo "<br> <br>";
    echo "<center>";
    echo "<img width='450px' height='450px' src='data:image;base64,".base64_encode($row2[0])."'>";

    echo "<br> <br>";
    echo "</center>";
  }
}

?>

但是如何按时间顺序显示图片呢?

【问题讨论】:

  • 请停止使用mysql_*函数。它们已经被弃用超过 2 年了。您的代码对SQL injection 开放。这基本上意味着您网站的任何访问者只需不到一分钟的时间就可以对您的数据库做任何他们想做的事情。这包括摧毁它。
  • 我认为您需要一个联接并且只需 1 个查询
  • @icecub 作为记录,那是在一个会话中,我们不知道它是如何到达那里的
  • @Drew 同意。但是,当有更好、更安全的功能可用时,最好还是停止使用它。我敢肯定,您可以通过检查字符串来防止 SQL 注入,但是恕我直言,Prepared Statements 是最安全的选择。
  • mysql_ 函数在 3 年前随着 PHP5.5 on 20 June 2013 的发布而被弃用。它们在 PHP 7.xx 中不再可用。在您现在开发的代码中完全没有必要使用这些未维护的功能。

标签: php mysql sql database join


【解决方案1】:

加入两个表并按time排序

SELECT f.username_follow, p.pic, p.time
FROM following AS f
JOIN Posts AS p ON p.username = f.username_follow
WHERE follower = '$username'
ORDER BY p.time

【讨论】:

  • 谢谢你的作品!!
猜你喜欢
  • 2014-07-18
  • 2021-01-28
  • 1970-01-01
  • 2019-05-31
  • 1970-01-01
  • 1970-01-01
  • 2022-01-09
  • 2016-04-11
  • 1970-01-01
相关资源
最近更新 更多