php网站,查询条件:姓名,性别,年龄,职位,政治面貌,职称,单位。求sql语句实现多条件查询

查询原则:七个条件可以任选一个以上进行查询,未被选择的条件则认为该条件的所有结果均输出(比如未选性别,则认为输出性别为男和女的所有结果),最后根据所选查询条件输出结果。对... 查询原则:七个条件可以任选一个以上进行查询,未被选择的条件则认为该条件的所有结果均输出(比如未选性别,则认为输出性别为男和女的所有结果),最后根据所选查询条件输出结果。
对应的表单名转化为变量后为:$name,$sex,$age,$posi,$part,$zhic,$danwei;数据库中的字段名即为:姓名,性别,年龄,职位,政治面貌,职称,单位。除姓名是输入外,其他都是<select>选择。
请问这个查询功能的sql语句怎么写。求源码。
展开
 我来答
cmiq2000
2012-12-11 · TA获得超过850个赞
知道小有建树答主
回答量:356
采纳率:0%
帮助的人:160万
展开全部
$name,$sex,$age,$posi,$part,$zhic,$danwei
这些都是接过来的值,我直接写语句了
$where = '1=1';
if($name){
$where1 .= "and name = '$name'";
}
if($sex){
$where2 .= "and sex= '$sex";
}
if($age){
$where3 .= "and age= '$age";
}
if($posi){
$where4 .= "and posi= '$posi";
}
if($part){
$where5 .= "and part= '$part";
}
if($zhic){
$where6 .= "and zhic= '$zhic";
}

if($danwei){
$where7 .= "and danwei= '$danwei";
}
$where .='$where1'$where2'$where3'$where4'$where5'$where6'$where7
$sql = "select * from 表名 where $where";

这样写行吗??
追问
如果年龄是几个年龄段应该怎么修改年龄那里呢?
追答
应是在
if($sex){
$where2 .= "and sex= '$sex";
}

后加一个
if($age2){
$where3 .= "and age>'$age and age<'$age2";
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wanglu199011
2012-12-11
知道答主
回答量:66
采纳率:0%
帮助的人:32.8万
展开全部
$name,$sex,$age,$posi,$part,$zhic,$danwei
这些是客户端传过来的值,有必要,你验证一下,安全。

$where = '1';
if($name){
$where .= "and name = '".$name."'";
}
if($sex){
$where .= "and sex= '".$sex."‘";
}
if($age){
$where .= "and age= '".$age."’";
}
if($posi){
$where .= "and posi= '".$posi."‘";
}
if($part){
$where .= "and part= '".$part."’";
}
if($zhic){
$where .= "and zhic= '".$zhic."‘";
}

if($danwei){
$where .= "and danwei= '”.$danwei."’";
}

$sql = "select * from 表名 where $where";
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
失落的雨毛
2012-12-11 · TA获得超过844个赞
知道小有建树答主
回答量:1074
采纳率:50%
帮助的人:958万
展开全部
$name,$sex,$age,$posi,$part,$zhic,$danwei
这些都是接过来的值,我直接写语句了
$where = '1=1';
if($name){
$where .= "and name = '$name'";
}
if($sex){
$where .= "and sex= '$sex";
}
if($age){
$where .= "and age= '$age";
}
if($posi){
$where .= "and posi= '$posi";
}
if($part){
$where .= "and part= '$part";
}
if($zhic){
$where .= "and zhic= '$zhic";
}

if($danwei){
$where .= "and danwei= '$danwei";
}

$sql = "select * from 表名 where $where";
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
书香轻染诗
2012-12-11 · 超过18用户采纳过TA的回答
知道答主
回答量:62
采纳率:0%
帮助的人:38.2万
展开全部
$where = '';
if(!empty($name)){
$where .= " AND name like '%$name%'";
}
if(!empty($sex)){
$where .= " AND name like '%$sex%'";

}

一次类推 $sql = "SELECT * FROM user WHERE 1 $where";
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式