php+mysql 空条件查询怎么写

我有一个搜索表单,里面的内容不一定填,不填表示不搜索这项那查询语句应该怎么写select*fromtablewherenamelike*andage=*貌似查不到... 我有一个搜索表单,里面的内容不一定填,不填表示不搜索这项
那查询语句应该怎么写
select * from table where name like * and age = *
貌似查不到
展开
 我来答
li361111523
2012-08-10 · TA获得超过229个赞
知道小有建树答主
回答量:145
采纳率:100%
帮助的人:109万
展开全部
比如表单时用post方法提交的,给你的代码如下:
//***************************************php 代码******************************************************

//此处获取你所有要查询的条件
$name = $_POST['username']; //你要查询的条件1
$age = $_POST['age']; //你要查询的条件2
//以下是生成查询条件中where语句的代码
$where = ' where 1 ';//先定义一个空的查询条件
if (trim ($name) != '') {
$where .= " AND name = '" . $name . "' ";
}
if (trim ($age) != '') {
$where .= " AND age = '" . $age . "' ";
}
$sql = ' select * from table '.$where;
//***************************************代码结束*****************************************************************

如果你提交表单中什么都没填。此时得到的查询语句为select * from table where 1
如果你只提交了一个年龄为6的表单。 此时得到的查询语句为:select * from table where 1 AND age = '6'

不懂得再问我。期望对你有帮助。
追问
非常感谢
一喉封剑
2012-08-10 · 超过59用户采纳过TA的回答
知道小有建树答主
回答量:246
采纳率:0%
帮助的人:166万
展开全部
假设表单有name 和 age两项,
用户只填了name 没填age然后提交表单,
在php里,你需要根据接收到的数据判断一下他到底填了哪个没填哪个,
然后这种情况最终的sql应该是:
select * from table where name like '%测试的%'
不填age就让sql里不出现age的条件,不填name就让sql里不出现name的条件。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
JackyCho
2012-08-10 · TA获得超过311个赞
知道小有建树答主
回答量:287
采纳率:0%
帮助的人:249万
展开全部
$sql = "SELECT * FROM table"; //查询语句查询部分

$where = " WHRER 1"; //查询语句条件部分

$name = trim($_POST['name']); //获取传上来的name值
$age = trim($_POST['age']); //获取传上来的age值

if(isset($name)){ //如果有填name

$where .= " AND name LIKE '%{$name}%' ";

}
if(isset($age)){ //如果有填age

$where .= " AND age = {$age}";

}
$sql = $sql.$where;
追问
非常感谢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
全视弗里曼
2012-08-10 · TA获得超过4180个赞
知道大有可为答主
回答量:3378
采纳率:0%
帮助的人:2846万
展开全部
搜索的不同条件要靠你的程序来生成不同的SQL,而不是靠SQL自身。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式