如何用php推荐朋友
我想向用户随机推荐一些朋友,无论建议和当前会话用户之间是否有共同的朋友 以下是我尝试过的:如何用php推荐朋友,php,mysql,mysqli,Php,Mysql,Mysqli,我想向用户随机推荐一些朋友,无论建议和当前会话用户之间是否有共同的朋友 以下是我尝试过的: $sess = htmlspecialchars(mysqli_real_escape_string($con, $_SESSION['user_id'])); $qet = mysqli_query($con, "SELECT user.id AS id, user.name AS name, user.u_name AS u_name, user.profile_pic AS profile_pic
$sess = htmlspecialchars(mysqli_real_escape_string($con, $_SESSION['user_id']));
$qet = mysqli_query($con, "SELECT user.id AS id, user.name AS name, user.u_name AS u_name, user.profile_pic AS profile_pic
FROM user INNER JOIN user_friend ON (user.id = user_friend.add_by_id) OR (user.id = user_friend.add_to_id)
WHERE (user_friend.add_to_id != '$sess' or user_friend.add_by_id != '$sess') AND (user.id != '$sess')
ORDER BY RAND() LIMIT 1");
我的表格结构:
用户朋友
我没有得到正确的结果,它向我推荐了那些已经和我是朋友的朋友(当前会话用户)。我们无法确定到底是哪里出了问题,因为您没有向我们展示表
user
和表user\u friend
的结构,但是,从给出的信息推断,您的ON…
和WHERE…
语句不正确。我建议您在sql中使用NOT IN
子句。这方面的内容更多(但可能有所不同,因为我们没有您表格的确切格式!):
SELECT * FROM user WHERE id NOT IN (SELECT friends_id FROM user_friends WHERE id = :sess)
同样,如果您想要确切的SQL语句,我们需要知道表的结构。如果你更新你的问题,我会很高兴地更新我的答案:)
重要提示:
您以前的代码不安全,也不实用。您错误地使用了htmlspecialchars()
,为了防止sql注入,正确的方法是使用准备好的语句和参数绑定。下面是使用MySQL(PDO)(首选方法)实现的示例:
稍后,当您决定输出所选数据时,应使用htmlspecialchars()
如下所示:
echo "Friends: ".htmlspecialchars($data)."<br>";
echo“Friends:.htmlspecialchars($data)。“
”;
您是否尝试排除已好友列表?htmlspecialchars
不用于转义查询参数。@PraveenKumar no bhai,您能详细解释一下如何操作吗?因为我现在是第12位,而且我是编程新手,我自己也学过,所以我强烈建议你听从不要惊慌的建议,不要使用htmlspecialchars()
。您使用该函数来防止XSS攻击,这意味着您在echo
ing要显示的信息时使用它,而不是在执行sql查询时使用它。为了防止sql注入,准备好的语句和绑定参数是最好的选择,我强烈建议使用PDO而不是MySQLithank,我已经更新了它。你现在能回答吗,兄弟?
echo "Friends: ".htmlspecialchars($data)."<br>";