我已经做了三张 table 。

表1 =用户。列名称为用户ID (auto_increment)和用户名
表2 =爱好。列名是 hobbyid (auto_increment)和 hobbyname
Table3 = users_hobbies 。列名是FK_userid和FK_hobbyid。

现在业余爱好有了板球,足球, Volley
在注册过程中,用户仅选择板球和足球,我将其存储在 $ _SESSION ['hobby_id'] 关联数组中。

但在个人资料中,他/她想增加一些兴趣爱好。

因此,我想显示不等于$ _SESSION ['hobby_id']的兴趣爱好列表。

当然,这是行不通的:

foreach($_SESSION['hobby_id'] as $k=>$v)
{

  $query="select hobbyid,hobbyname from hobbies where hobbyid!= $v";
}
Output was football,volleyball and cricket,volleyball....but i wanted only volleyball

所以我想要那个
$query="select hobbyid,hobbyname from hobbies where hobbyid!=(multiple values of session hobby id)";

我需要输入什么代码才能获得所需的结果(仅限 Volley )

最佳答案

删除foreach循环并在MySQL中使用NOT IN比较:

$query="
    SELECT hobbyid,hobbyname
    FROM hobbies
    WHERE hobbyid NOT IN (" . implode(',', $_SESSION['hobby_id']) . ")
";

关于php - 选择不等于关联数组键的多个值的位置,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11201705/

10-13 08:56