【发布时间】:2018-07-31 08:21:42
【问题描述】:
我有一个包含以下字段的表格
id | Name | Gender | Country | Math | English | Science
---------------------------------------------------------------
1 | Paul Allen | Male | USA | 4 | 2 |
2 | Andrew Cur | Male | GBR | | 1 | 2
3 | Paul Hanz | Male | GER | 5 | 2 | 2
4 | Angela Dow | Female | AUT | 3 | | 1
5 | Dana Loconto | Female | USA | 2 | |
我的用户可以使用 html 表单和 php.ini 以多种方式过滤此表。 他们可以按用户名过滤,按国家过滤,按性别过滤。这很容易实现。我的问题是,我还需要能够根据成绩进行过滤。例如:
“我想知道所有数学成绩为 2 和 3 并且科学成绩为 1 的女性”。
尽管我知道如何使用 AND 和 OR 手动编写查询,但事实证明,我很难根据用户使用表单传递的参数来组织最终查询。特别是在成绩方面。
有什么见解可以指引我走上正确的道路吗?
编辑:经过一些建议后,我还使用了以下内容:
'code' $cchair = count($_POST['f_chair']);
$commas = 1;
$query_officials .= " AND o_math IN (";
foreach($_POST['f_math'] as $val) {
$query_officials .= "'".$val."'";
if ($commas < $cchair) { $query_officials .= ", "; $commas++; }
}
$query_officials .= ")";
【问题讨论】:
-
使用 PHP 根据选择的过滤器有条件地包含
WHERE子句。如果您到目前为止发布代码,您可能会获得更具体的帮助。