如何从收藏夹中调用项目 table

How to recall items from favourites table

我有 table 个收藏夹 'id' 'userid' 和 'postid'。例如,当 'userid' = 1 时,我正在尝试 select 'postid' 中的所有条目。

我还有一个 table 的帖子 'id' 和其他内容。然后我想 select 'postid'='id' 的所有行,然后回显这些行的内容。

本质上是过滤用户收藏的帖子。

我得到的是

<?php
include 'connect.php';
$user = $_SESSION['id'];
$getfaves = mysql_query("SELECT postid FROM Favourites where userid='$user'") or die(mysql_query());
if ($rowfave = mysql_fetch_assoc($getfaves))
    {
        $faveposts = $rowfave['id'];

        $getposts = mysql_query("SELECT * FROM Posts where id='$faveposts' ORDER BY id DESC");
        while ($row = mysql_fetch_assoc($getposts))
        {
            $content = 'content';
            echo ($content);
        }
    }
?>

($content = 'content'; 只是一个示例,并不是我在代码中实际使用的内容)

显然这是不正确的,可能是因为我想 select 一个 ID 列表,然后搜索该列表中的所有内容,但我只编码为查找一个项目。但是我不知道如何纠正这个问题。

在此先感谢您的帮助。

有一种更简单的方法可以在 INNER JOIN 的帮助下仅使用一个 sql 查询。 所以你的查询将是

SELECT POST.*
FROM `Favourites`
INNER JOIN `Post`
ON Post.id = Favourites.postid WHERE (Favourites.userid='$user')
ORDER BY Post.id DESC;

here 是关于 INNER JOIN 及其实用程序

的文档

如果您需要更多帮助,请告诉我,

php部分:

<?php
include 'connect.php';
$user = $_SESSION['id'];
$sql="SELECT POST.*
    FROM `Favourites`
    INNER JOIN `Post`
    ON Post.id = Favourites.postid WHERE (Favourites.userid='$user')
    ORDER BY Post.id DESC";
$conn = new mysqli($servername, $username, $password,$dataBase);
  $Result = $conn->query($sql);
  while($row = $Result->fetch_assoc()) {
    //do what you want with the $row, it contain ur resault
  }
?>

欢迎测试,有问题请反馈