如何用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");
我的表格结构:

用户朋友

  • 身份证
  • 按\u id添加\u
  • 将\u添加到\u id
  • 补充
  • 接受
  • 使用者

  • 身份证
  • 名字
  • 你的名字
  • 剖面图
  • 电子邮件
  • 密码
  • 性别

  • 我没有得到正确的结果,它向我推荐了那些已经和我是朋友的朋友(当前会话用户)。

    我们无法确定到底是哪里出了问题,因为您没有向我们展示表
    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>";