Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 忽略/忽略用户已购买的任何记录_Php_Mysql_Codeigniter - Fatal编程技术网

Php 忽略/忽略用户已购买的任何记录

Php 忽略/忽略用户已购买的任何记录,php,mysql,codeigniter,Php,Mysql,Codeigniter,我目前正在开发一个网站,该网站允许用户通过显示或隐藏他们已经购买的物品来过滤市场。这适用于一个基本的AJAX调用,该调用通过这些可用过滤器的当前条件,然后使用CodeIgniter的活动记录构建适当的查询 我的问题是,如果用户选择隐藏购买的物品,则查询会忽略/忽略任何相关记录,即如果user_id=5和hide purchased为true,则查询中不会返回user_id=5拥有的任何场景 Tbl:场景 设计表与此非常相似,包括对游戏、游戏类型、设计名称等的引用 Tbl:用户场景 质疑 查询使用

我目前正在开发一个网站,该网站允许用户通过显示或隐藏他们已经购买的物品来过滤市场。这适用于一个基本的AJAX调用,该调用通过这些可用过滤器的当前条件,然后使用CodeIgniter的活动记录构建适当的查询

我的问题是,如果用户选择隐藏购买的物品,则查询会忽略/忽略任何相关记录,即如果user_id=5和hide purchased为true,则查询中不会返回user_id=5拥有的任何场景

Tbl:场景

设计表与此非常相似,包括对游戏、游戏类型、设计名称等的引用

Tbl:用户场景

质疑

查询使用CodeIgniter的活动记录$this->db->select/$this->db->where,但这有点不相关

-

我尝试过一些方法,比如与用户\场景进行内部连接,然后按场景\ id进行分组,但这会导致仅返回用户\场景中存在的场景的问题。然后我尝试了一个子查询,但随后质疑这是否是正确的路径


我知道还有其他方法——循环返回数据并查询特定用户是否存在该记录,但我怀疑这会非常低效。因此,我不知道该尝试什么,非常感谢您的帮助。

我不知道您的设置是否允许,但我会做一个子选择:

或通过非输入:

或者通过左连接:

我想第一种方法更快。

太好了。我的结果是:$this->db->where'scene\u id不在SELECT scene\u id FROM user\u scenes where user\u id=’。$user\u id.,NULL,FALSE;我昨天也尝试过类似的方法,但不管出于什么原因,我尝试了27个用户id不在的地方。。。。谢谢你的帮助!
-------------------------------------------------------------------------
| design_id | scene_id | scene_name | ... [irrelevant columns to the Q] |
|-----------|----------|------------|-----------------------------------|
|     1     |     1    |  welcome   |                                   |
|     1     |     2    |   hello    |                                   |
|     2     |     3    |    asd     |                                   |
-------------------------------------------------------------------------
----------------------------------------------------------------------
| design_id | scene_id | user_id | ... [irrelevant columns to the Q] |
|-----------|----------|---------|-----------------------------------|
|     1     |     1    |    5    |                                   |
|     1     |     2    |    5    |                                   |
|     1     |     1    |    9    |                                   |
----------------------------------------------------------------------
SELECT `designs`.`design_id`, `designs`.`design_name`, `scenes`.`scene_id`, `scenes`.`scene_name`, `scenes`.`scene_description`, `scenes`.`scene_unique_code`, `scenes`.`date_created`, `scenes`.`scene_cost`, `scenes`.`type`, `games`.`game_title`, `games`.`game_title_short`, `games_genres`.`genre` 
FROM (`scenes`) 
JOIN `designs` ON `designs`.`design_id` = `scenes`.`design_id` 
JOIN `games` ON `designs`.`game_id` = `games`.`game_id` 
JOIN `games_genres` ON `games`.`genre_id` = `games_genres`.`genre_id` 
WHERE `scenes`.`private` = 0 
ORDER BY `designs`.`design_name` asc, `scenes`.`scene_name` asc 
LIMIT 6
SELECT * FROM `scenes` 
    WHERE `scenes`.`scene_id` NOT IN (SELECT `scene_id` FROM `user_scenes` WHERE `user_id` = 5)
SELECT * FROM `scenes` 
    LEFT JOIN (SELECT `scene_id`, `user_id` FROM `user_scenes` WHERE `user_id` = 5) AS `user_scenes`
    ON `scenes`.`scene_id` = `user_scenes`.`scene_id`
WHERE `user_scenes`.`user_id` IS NULL