5

我做了三张桌子。

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

所以我想要那个

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

我必须输入什么代码才能获得所需的结果(仅限排球)

4

1 回答 1

2

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

$query="
    SELECT hobbyid,hobbyname
    FROM hobbies
    WHERE hobbyid NOT IN (" . implode(',', $_SESSION['hobby_id']) . ")
";
于 2012-06-26T06:24:05.910 回答