您好,欢迎访问一九零五行业门户网

多个查询条件的sql话语的拼写技巧,求指点

多个查询条件的sql语句的拼写技巧,求指点。
多个查询条件的sql语句的拼写技巧,求指点。
$sql=select * from tb1;
if($id=$_get['id'])
{
$where.= where id like %$id%;
}
if($name=$_get['name'])
{
$where.= where name like %$name%;
}
//当id有值的时候
sql=select * from tb1 where id like %$id%
//当name有值的时候
sql=select * from tb1 where name like %$name%
//当同时又值的时候,sql就出错了
sql=select * from tb1 where name like %$name% where where id like %$id%
//当然你可以说用
if($id=$_get['id']&&$name=$_get['name'])
{
where.= and;
}

我举的例子只有两个条件,实际项目中我这里有十几个条件,这种方式肯定不行。
求更好的拼接方式
分享到:
------解决方案--------------------
$where = array();
foreach($_get as $k=>v) $where[] = $k like '%$v%';
$sql=select * from tb1;
if($where) $sql .= ' where ' . join(' and ', $where);

------解决方案--------------------
$sql=select * from tb1;
$where = array();
if($id=$_get['id'])
{
$where[]= id like '%$id%';
}
if($name=$_get['name'])
{
$where[]= name like '%$name%';
}
$s=(!empty($where)) ? where . implode( and , $where) : '';
$sql.=$s;
------解决方案--------------------
我个人觉得我这个简单
$sql=select * from tb1 where 1=1;
if($id=$_get['id']) $sql.= and id like %$id%;
if($name=$_get['name']) $sql.= and name like %$name%;

------解决方案--------------------
引用:我个人觉得我这个简单
$sql=select * from tb1 where 1=1;

其它类似信息

推荐信息