Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 只有一个查询,而不是两个查询_Php_Mysql - Fatal编程技术网

Php 只有一个查询,而不是两个查询

Php 只有一个查询,而不是两个查询,php,mysql,Php,Mysql,我有两个表,一个叫做post,另一个叫做followers。两个表都有一行名为userID。我只想显示该人关注的人的帖子。我尝试使用一个MySQL查询,但它根本不起作用 现在,我正在使用这样的解决方法: $getFollowing = mysqli_query($db, "SELECT * FROM followers WHERE userID = '$myuserID'"); while($row = mysqli_fetch_object($getFollowing)) { $Fol

我有两个表,一个叫做
post
,另一个叫做
followers
。两个表都有一行名为
userID
。我只想显示该人关注的人的帖子。我尝试使用一个MySQL查询,但它根本不起作用

现在,我正在使用这样的解决方法:

$getFollowing = mysqli_query($db, "SELECT * FROM followers WHERE userID = '$myuserID'");
while($row = mysqli_fetch_object($getFollowing))
{
    $FollowingArray[] = $row->followsID;
}
    if (is_null($FollowingArray)) { 
    // not following someone
    } 
    else {
    $following = implode(',', $FollowingArray); 
    }


$getPosts = mysqli_query($db, "SELECT * FROM posts WHERE userID IN($following) ORDER BY postDate DESC");
正如你可能想象的那样,我试图只对数据库进行一次调用。因此,我不想调用以数组形式接收
$following
,而是将其全部放在一个查询中。这是可能的吗?

使用SQL查询来实现这一点

假设$myuserID是一个假定为整数的变量,我们只需将其转换为整数即可对其进行转义,以避免SQL注入

试着阅读,确保你理解它。例如,SQL注入可以用来删除数据库和许多其他讨厌的东西

大概是这样的:

$getFollowing = mysqli_query($db, "SELECT * FROM followers WHERE userID = '$myuserID'");
while($row = mysqli_fetch_object($getFollowing))
{
    $FollowingArray[] = $row->followsID;
}
    if (is_null($FollowingArray)) { 
    // not following someone
    } 
    else {
    $following = implode(',', $FollowingArray); 
    }


$getPosts = mysqli_query($db, "SELECT * FROM posts WHERE userID IN($following) ORDER BY postDate DESC");
PHP代码:

$escapedmyuserID = (int)$myuserID; // make sure we don't get any nasty SQL-injections
然后,sql查询:

SELECT *
FROM followers
  LEFT JOIN posts ON followers.someColumn = posts.someColumn
WHERE followers.userID = '$escapedmyuserID'
ORDER BY posts.postDate DESC
使用SQL查询来完成此操作

假设$myuserID是一个假定为整数的变量,我们只需将其转换为整数即可对其进行转义,以避免SQL注入

试着阅读,确保你理解它。例如,SQL注入可以用来删除数据库和许多其他讨厌的东西

大概是这样的:

$getFollowing = mysqli_query($db, "SELECT * FROM followers WHERE userID = '$myuserID'");
while($row = mysqli_fetch_object($getFollowing))
{
    $FollowingArray[] = $row->followsID;
}
    if (is_null($FollowingArray)) { 
    // not following someone
    } 
    else {
    $following = implode(',', $FollowingArray); 
    }


$getPosts = mysqli_query($db, "SELECT * FROM posts WHERE userID IN($following) ORDER BY postDate DESC");
PHP代码:

$escapedmyuserID = (int)$myuserID; // make sure we don't get any nasty SQL-injections
然后,sql查询:

SELECT *
FROM followers
  LEFT JOIN posts ON followers.someColumn = posts.someColumn
WHERE followers.userID = '$escapedmyuserID'
ORDER BY posts.postDate DESC
使用SQL查询来完成此操作

假设$myuserID是一个假定为整数的变量,我们只需将其转换为整数即可对其进行转义,以避免SQL注入

试着阅读,确保你理解它。例如,SQL注入可以用来删除数据库和许多其他讨厌的东西

大概是这样的:

$getFollowing = mysqli_query($db, "SELECT * FROM followers WHERE userID = '$myuserID'");
while($row = mysqli_fetch_object($getFollowing))
{
    $FollowingArray[] = $row->followsID;
}
    if (is_null($FollowingArray)) { 
    // not following someone
    } 
    else {
    $following = implode(',', $FollowingArray); 
    }


$getPosts = mysqli_query($db, "SELECT * FROM posts WHERE userID IN($following) ORDER BY postDate DESC");
PHP代码:

$escapedmyuserID = (int)$myuserID; // make sure we don't get any nasty SQL-injections
然后,sql查询:

SELECT *
FROM followers
  LEFT JOIN posts ON followers.someColumn = posts.someColumn
WHERE followers.userID = '$escapedmyuserID'
ORDER BY posts.postDate DESC
使用SQL查询来完成此操作

假设$myuserID是一个假定为整数的变量,我们只需将其转换为整数即可对其进行转义,以避免SQL注入

试着阅读,确保你理解它。例如,SQL注入可以用来删除数据库和许多其他讨厌的东西

大概是这样的:

$getFollowing = mysqli_query($db, "SELECT * FROM followers WHERE userID = '$myuserID'");
while($row = mysqli_fetch_object($getFollowing))
{
    $FollowingArray[] = $row->followsID;
}
    if (is_null($FollowingArray)) { 
    // not following someone
    } 
    else {
    $following = implode(',', $FollowingArray); 
    }


$getPosts = mysqli_query($db, "SELECT * FROM posts WHERE userID IN($following) ORDER BY postDate DESC");
PHP代码:

$escapedmyuserID = (int)$myuserID; // make sure we don't get any nasty SQL-injections
然后,sql查询:

SELECT *
FROM followers
  LEFT JOIN posts ON followers.someColumn = posts.someColumn
WHERE followers.userID = '$escapedmyuserID'
ORDER BY posts.postDate DESC

+1.我还警告OP他们的代码中存在SQL注入漏洞。谢谢,现在似乎可以正常工作:)谢谢你的提示,但我在调用mysql之前已经检查了$myuserID。很抱歉再次打扰,还有一个问题。我现在使用以下语句:SELECT*FROM followers LEFT JOIN followers.followsID=posts.userID,其中followers.userID='myuserid'按上载日期排序。这很好,可以返回我关注的用户的所有帖子。我尝试添加以下两个:和/或posts.userID='$myuserid'以在这个时间轴中显示我自己的帖子,但它根本不起作用。它只返回来自其他ppl的帖子。我还试图用上面的一个替换第一个WHERE子句,但是结果总是空的。+1。我还警告OP他们的代码中存在SQL注入漏洞。谢谢,现在似乎可以正常工作:)谢谢你的提示,但我在调用mysql之前已经检查了$myuserID。很抱歉再次打扰,还有一个问题。我现在使用以下语句:SELECT*FROM followers LEFT JOIN followers.followsID=posts.userID,其中followers.userID='myuserid'按上载日期排序。这很好,可以返回我关注的用户的所有帖子。我尝试添加以下两个:和/或posts.userID='$myuserid'以在这个时间轴中显示我自己的帖子,但它根本不起作用。它只返回来自其他ppl的帖子。我还试图用上面的一个替换第一个WHERE子句,但是结果总是空的。+1。我还警告OP他们的代码中存在SQL注入漏洞。谢谢,现在似乎可以正常工作:)谢谢你的提示,但我在调用mysql之前已经检查了$myuserID。很抱歉再次打扰,还有一个问题。我现在使用以下语句:SELECT*FROM followers LEFT JOIN followers.followsID=posts.userID,其中followers.userID='myuserid'按上载日期排序。这很好,可以返回我关注的用户的所有帖子。我尝试添加以下两个:和/或posts.userID='$myuserid'以在这个时间轴中显示我自己的帖子,但它根本不起作用。它只返回来自其他ppl的帖子。我还试图用上面的一个替换第一个WHERE子句,但是结果总是空的。+1。我还警告OP他们的代码中存在SQL注入漏洞。谢谢,现在似乎可以正常工作:)谢谢你的提示,但我在调用mysql之前已经检查了$myuserID。很抱歉再次打扰,还有一个问题。我现在使用以下语句:SELECT*FROM followers LEFT JOIN followers.followsID=posts.userID,其中followers.userID='myuserid'按上载日期排序。这很好,可以返回我关注的用户的所有帖子。我尝试添加以下两个:和/或posts.userID='$myuserid'以在这个时间轴中显示我自己的帖子,但它根本不起作用。它只返回来自其他ppl的帖子。我还试图用上面的一个替换第一个WHERE子句,但是结果总是空的。