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

标签 php mysql select associative-array

我制作了三个表格。

Table1=users,列名为userid(auto_increment)和username
Table2=爱好。列名是hobbyid (auto_increment) 和hobbyname
Table3=users_hobbies。列名是 FK_userid 和 FK_hobbyid。

现在 hobbynamecricket,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/

相关文章:

javascript - 检查MySQL数据是否已存在,如果不存在则INSERT。 [PHP+jQuery Ajax]

php - 使用 PHP 生成 JSON

mysql - 如何在不使用 MAX() 的情况下获取 ID 的最大值

vba 选择/删除除第一个以外的所有工作表

javascript - 如何在打开新选项卡(打开文件)时保持在选项卡中?

PHP:在表中显示来自mysql数据库的数据

php - 带有变量和参数的东西(准备好的语句)

MySQL CASE 在一个查询中设置一个额外的字段值

mysql - 如何在 Laravel 中使用 IFNull

mysql - 如何按范围对 MySQL 查询进行排序?