Php 我想要一张单人床,在这种情况下在哪里?
我的MySQL有这个问题,我有3个组合框,我想得到它们的值,这样我就可以为它们创建一个过滤器。我想为这些代码设置1Php 我想要一张单人床,在这种情况下在哪里?,php,mysql,Php,Mysql,我的MySQL有这个问题,我有3个组合框,我想得到它们的值,这样我就可以为它们创建一个过滤器。我想为这些代码设置1where,所以有人可以帮助我。短暂性脑缺血发作 if($this->input->get('name')) $name = $this->input->get('name'); else $name = ""; $namecondition = "";
where
,所以有人可以帮助我。短暂性脑缺血发作
if($this->input->get('name'))
$name = $this->input->get('name');
else
$name = "";
$namecondition = "";
if(strlen($name) > 0)
$namecondition .= "WHERE E.`nameid` = '$name'";
if($this->input->get('age'))
$age = $this->input->get('age');
else
$age = "";
$namecondition2 = "";
if(strlen($age) > 0)
$namecondition2 .= "WHERE E.`ageid` = '$name'";
if($this->input->get('year'))
$year = $this->input->get('year');
else
$year = "";
$namecondition = "";
if(strlen($year) > 0)
$namecondition3 .= "WHERE E.`yearid` = '$name'";
$sSQL = "SELECT *,COALESCE(E.`id`,0) AS 'eid'
FROM employee AS E
LEFT JOIN name AS B ON E.nameid = B.id
LEFT JOIN age AS C ON E.ageid = C.id
LEFT JOIN year AS J ON E.yearid = J.id
$namecondition
ORDER BY E.lastName ASC";
要连接这些位置,您需要的是和,而不是每次连接的位置。并仅使用单个
$namecodition
变量来构建where字符串(无$namecodition2
和$namecodition3
)
所以你可以这样做。默认情况下,从一个虚拟的开始:
$namecondition = "WHERE 1 ";
以及每种浓缩使用和:
$namecondition .= " AND E.`nameid` = '$name'";
等等
这将创建:
其中1和第一个\u条件以及第二个\u条件…
这是您的解决方案使用其中1=1
并附加另一个以和
开头的字符串
if($this->input->get('name'))
$name = $this->input->get('name');
else
$name = "";
$namecondition = "";
if(strlen($name) > 0)
$namecondition .= " AND E.`nameid` = '$name'";
if($this->input->get('age'))
$age = $this->input->get('age');
else
$age = "";
$namecondition2 = "";
if(strlen($age) > 0)
$namecondition2 .= " AND E.`ageid` = '$name'";
if($this->input->get('year'))
$year = $this->input->get('year');
else
$year = "";
$namecondition = "";
if(strlen($year) > 0)
$namecondition3 .= " AND E.`yearid` = '$name'";
$sSQL = "SELECT *,COALESCE(E.`id`,0) AS 'eid'
FROM employee AS E
LEFT JOIN name AS B ON E.nameid = B.id
LEFT JOIN age AS C ON E.ageid = C.id
LEFT JOIN year AS J ON E.yearid = J.id
where 1 = 1
$namecondition
ORDER BY E.lastName ASC";
你为什么想要一个
where
子句???当前SQL在我看来很好!!我将根据三个组合框的值创建一个过滤器