选择不等于关联数组的多个键值的位置

San*_*osh 5 php mysql select associative-array

我做了三张桌子.

Table1 = users.列名是userid(auto_increment)和username.
表2 =爱好.列名是hobbyid(auto_increment)和hobbyname.
表3 = users_hobbies.列名是FK_userid和FK_hobbyid.

现在爱好板球,足球,排球.
在注册期间,用户只选择板球和足球,并将其存储在$ _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
Run Code Online (Sandbox Code Playgroud)

所以我想要那个

$query="select hobbyid,hobbyname from hobbies where hobbyid!=(multiple values of session hobby id)";
Run Code Online (Sandbox Code Playgroud)

我必须输入什么代码才能获得理想的结果(只有排球)

rab*_*dde 2

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

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