提问人:user7370387 提问时间:1/18/2017 最后编辑:ddbuser7370387 更新时间:1/18/2017 访问量:49
将 PHP 代码粘合到多个函数中
Glue a redondant PHP code into several functions
问:
我有这些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
}
B我需要把所有东西都放在一行上,这并不是真正的实用
我打算在我的其他函数中注入$filtres并使用 eval($filtres),这是正确的方法吗?
答:
1赞
Philipp
1/18/2017
#1
不确定,如果我误会了,但似乎,您只需要创建一个函数,该函数作为参数并从中构建查询字符串。$data
function filter($data) {
$requete = '';
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 $requete;
}
要稍后使用它,只需使用您的 $data var 调用它
$requete .= filter($data);
评论
0赞
user7370387
1/18/2017
你好,啊,是的,这是一个好主意,我今晚会尝试谢谢!
0赞
user7370387
1/18/2017
是的,它工作得很好,非常感谢!它将改变我的生活!你太好了
评论