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子句,但是结果总是空的。