Php 从第一个表中提取数据并使用其值从其他表中提取数据

Php 从第一个表中提取数据并使用其值从其他表中提取数据,php,mysql,Php,Mysql,我正在为我的博客创建一个跟踪机制,这是网站的一部分。因此,当一个用户想要跟随另一个用户时,他单击follow按钮,并在表中:follow,插入他的电子邮件id和要跟随用户的电子邮件id的。现在,当我想在页面上显示被跟踪用户的博客时,我从跟踪表中提取数据,该表包含我跟踪的用户的所有电子邮件id,然后我想使用这些电子邮件id从博客表中提取所有用户(我跟踪的)的数据email\u id我收到了 问题是我不能做第二部分,从第二个表中提取数据,我得到了我跟踪的所有电子邮件,但无法得到他们的博客 最后我发布

我正在为我的博客创建一个跟踪机制,这是网站的一部分。因此,当一个
用户
想要跟随另一个
用户
时,他单击follow按钮,并在
表中:follow
,插入他的
电子邮件id
和要跟随用户的电子邮件id的
。现在,当我想在页面上显示被跟踪用户的博客时,我从
跟踪表
中提取数据,该表包含我跟踪的用户的所有
电子邮件id
,然后我想使用这些
电子邮件id
博客表
中提取所有用户(我跟踪的)的数据
email\u id
我收到了

问题是我不能做第二部分,从第二个表中提取数据,我得到了我跟踪的所有电子邮件,但无法得到他们的博客

最后我发布了代码

$query= "select follow_user from follow where my_email='".$_SESSION['email']."'";

$data=mysql_query($query);
if (!$data) { // add this check.
    die('Invalid query: ' . mysql_error()) ;
}

while($row=mysql_fetch_array($data)){
    echo $row['follow_user'];
    echo "<br>";
    $query="select * from blog where my_email='".$row['follow_user']."'";
    $data=mysql_query($query);
    if (!$data) { // add this check.
        die('Invalid query: ' . mysql_error()) ;
    }
    while($row=mysql_fetch_array($data)){
        echo $row['subject'];
        echo "<br>";
        echo $row['my_email'];
        echo "<br>";
    }
}
$query=“从我的电子邮件='”所在的跟踪中选择跟踪用户”。$\u会话['email']。”;
$data=mysql\u query($query);
如果(!$data){//添加此检查。
die('无效查询:'.mysql_error());
}
while($row=mysql\u fetch\u数组($data)){
echo$row['follow_user'];
回声“
”; $query=“从博客中选择*,其中我的电子邮件=”。$row['follow\u user']。”; $data=mysql\u query($query); 如果(!$data){//添加此检查。 die('无效查询:'.mysql_error()); } while($row=mysql\u fetch\u数组($data)){ echo$row['subject']; 回声“
”; echo$row['my_email']; 回声“
”; } }
从两个表中获取相关数据的最简单方法是使用
联接

有关加入的更多信息,请点击此处:

例如:

SELECT blog.entry
FROM blog
INNER JOIN follow ON blog.email_id = follow.followed_email_id
WHERE follow.email_id = 32
这将让你从博客中获得所有的输入字段,这些字段由不同的跟随者email\u id编写,其中跟随者email\u id为32

内部连接确保您得到匹配的东西,并且只得到匹配的东西


更新上述新代码:

您仍然只需要一个查询。如果数据库处于实际生产环境中,在循环中执行大量查询将导致数据库死机

您的代码变得简单多了,只会因为一次无效查询而失败:

$query= "
    SELECT blog.*, follow.follow_user
    FROM blog
    INNER JOIN follow ON blog.my_email = follow.follow_user
    WHERE follow.follow_user = {$_SESSION['email']}
";

$data=mysql_query($query);
if (!$data) { // add this check.
    die('Invalid query: ' . mysql_error()) ;
}

while($row=mysql_fetch_array($data)){
    echo $row['follow_user'];
    echo "<br>";
    echo $row['subject'];
    echo "<br>";
    echo $row['my_email'];
    echo "<br>";
}
$query=”
选择blog.*,follow.follow\u用户
从博客
内部加入follow ON blog.my_email=follow.follow_用户
其中follow.follow_user={$_会话['email']}
";
$data=mysql\u query($query);
如果(!$data){//添加此检查。
die('无效查询:'.mysql_error());
}
while($row=mysql\u fetch\u数组($data)){
echo$row['follow_user'];
回声“
”; echo$row['subject']; 回声“
”; echo$row['my_email']; 回声“
”; }
Buddy这并没有得到我想要的,它在两个表中基于两个相等的参数显示数据,但我想从一个表中提取一些参数,然后在这些提取的参数的基础上,我想在另一个表中提取该表。这些参数可以是很多,也可以是很多different@user3417110是的,但是它向你展示了连接表的原理,这样你就可以到达你想要去的地方了。你能根据我发布的代码帮我处理工作代码吗abouve@user3417110
JOIN
是一步完成提取的方法。用你想要的更新了答案。