我制作了三个表格。
Table1=users,列名为userid(auto_increment)和username。
Table2=爱好。列名是hobbyid (auto_increment) 和hobbyname。
Table3=users_hobbies。列名是 FK_userid 和 FK_hobbyid。
现在 hobbyname 有 cricket,football,volleyball。
在注册期间,用户仅选择板球和足球,我将其存储在$_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/