【发布时间】:2017-06-02 21:47:34
【问题描述】:
我有这些 PHP 过滤器(将 AND 粘合到 SQL 选择):
if($data->secteur){
$requete .= " AND etude.Secteur = '".$data->secteur."'";
}
if($data->region){
$requete .= " AND etude.region = '".$data->region."'";
}
if($data->ca_min){
$requete .= " AND etude.ca >= ".$data->ca_min."";
}
if($data->ca_max){
$requete .= " AND etude.ca <= ".$data->ca_max."";
}
if($data->revenus_min){
$requete .= " AND Zone.Revenue_Zone >=".$data->revenus_min."";
}
if($data->revenus_max){
$requete .= " AND Zone.Revenue_Zone <=".$data->revenus_max."";
}
我需要在几个不同的功能中使用它们,它们总是完全相同但需要输入......有没有办法简单地粘贴一个“关键字”来在每次我需要它到任何功能时添加这个过滤器?我不知道如何以非常简单的方式做到这一点。 现在,我不得不在我的每个函数中重新编写它们!最后真的很丑!
我不能将它们包含在变量中,因为它需要被解释。我 javascript 我会做一个类似 eval("varFilters");
编辑:
我试试这个:
function filtres(){
$filtres = "
if($data->secteur){
$requete .= " AND etude.Secteur = '".$data->secteur."'";
}
if($data->region){
$requete .= " AND etude.region = '".$data->region."'";
}
if($data->ca_min){
$requete .= " AND etude.ca >= ".$data->ca_min."";
}
if($data->ca_max){
$requete .= " AND etude.ca <= ".$data->ca_max."";
}
if($data->revenus_min){
$requete .= " AND Zone.Revenue_Zone >=".$data->revenus_min."";
}
if($data->revenus_max){
$requete .= " AND Zone.Revenue_Zone <=".$data->revenus_max."";
}
";
return $filtres
}
但是我需要将所有内容放在一条线上,这并不是真正的实用
我打算在我的其他函数中注入 $filtres 并使用 eval($filtres),这样做是否正确?
【问题讨论】: