用PHP数组实现SQL查询及其功能

用PHP数组实现SQL查询及其功能,php,mysql,sql,Php,Mysql,Sql,我正在使用PHP和MySql。我需要一个查询,该查询应根据我的要求获取结果 我有一个表属性\u features\u表,它的属性带有一些特性 在前端我有一个搜索功能。当用户选择多个功能时 阳台、wifi、两居室等,应向他展示具有他选择的所有功能的酒店 但是当我使用下面的代码时,我得到的结果(属性)至少有一个特性 $featuresString = implode("','",$features); $featuresString = "'".$featuresString."'"; $query

我正在使用PHP和MySql。我需要一个查询,该查询应根据我的要求获取结果

我有一个表属性\u features\u表,它的属性带有一些特性

在前端我有一个搜索功能。当用户选择多个功能时 阳台、wifi、两居室等,应向他展示具有他选择的所有功能的酒店

但是当我使用下面的代码时,我得到的结果(属性)至少有一个特性

$featuresString = implode("','",$features);
$featuresString = "'".$featuresString."'";
$query = " SELECT * FROM property_features_tbl WHERE property_features_tbl.feature_id in (".$featuresString.")";
$features是包含用户选择的功能的数组


我想显示具有用户选择的所有功能的属性。请帮助我编写查询。

假设您只需要属性ID,则类似以下内容:-

<?php

$featuresString = implode("','",$features);
$featuresString = "'".$featuresString."'";
$feature_count = count($features);
$query = " SELECT property_id, COUNT(*) AS feature_count 
        FROM property_features_tbl 
        WHERE property_features_tbl.feature_id in (".$featuresString.")
        GROUP BY property_id
        HAVING feature_count = $feature_count";

?>

您是如何在数据库中存储功能的?请向我们展示featuresString@alok:该表有以下列primary_key、property_id、feature_id,同一属性可以有许多功能,同一功能可以有许多属性。@AshReva这是我从$featuresString'81'、'55'、'82'、'56'、'83'中获得的内容(第二次)@raghuveer999是否在数据库中启动了此查询并进行了检查?我认为此查询不会有任何区别,因为他说他的查询在数据库中工作。此查询将工作,但将返回具有此功能的每一行。似乎他想要的是那些属性具有所有这些功能的属性(即,一个属性可能有20个功能,并且只会在其中返回所有必需的功能)@AshReva不,我的查询在数据库中没有按照我的要求工作。它向我显示至少具有其中一个功能的属性。我希望属性具有所有功能。@Kickstart,毫无疑问,您的查询是按照我的要求进行的。但是你能解释一下为什么我的查询不起作用,为什么你的查询不起作用吗?为什么计数(*)?为什么“按属性\u id分组,具有功能\u计数=$feature\u计数”?有什么不同?您的表将有多个属性行,每个特性一行。您的查询得到的是您想要的功能所在的每一行。我的版本是查找具有所需功能的属性的所有行,使用COUNT/GROUP BY获得每个属性具有多少匹配功能的计数,然后使用不得不检查计数是否与您要查找的功能数相同。