各位大哥,小弟是刚学ASP,需要一个查询代码实现以下情况:
姓名:(输入姓名可以查询所有姓名一样的人,或包含其中文字的人,比如:输入张三,就出现所有的张三,输入张,就出现所有包含张的人)
性别:(输入男,就出现所有男性。如果上面输入了姓名张三,就出现姓名为张三,性别为男的人。)
年龄:(输入20,就出现20岁的人,如果输入上面的性别,就出本性别下的所有20的人,如果输入张三,再输入20,就出现符合条件的。输入张三、男、20也出现符合条件的)
这个怎么做啊?
拜托各位大哥帮帮忙。
发下代码大家看下吧。
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>
<body>
<form action="cx.asp" method="post" name="form1">
<p>查询条件:</p>
<p>姓名:
<label>
<input name="x1" type="text" id="x1">
</label>
</p>
<p>性别:
<label>
<input type="radio" name="x2" value="男">
男
</label>
<label>
<input type="radio" name="x2" value="女">
女
</label>
</p>
<p>年龄:
<label> </label>
<label>
<input name="x3" type="text" id="x3">
</label>
</p>
<p>
<label>
<input type="submit" name="Submit" value="提交">
</label>
</p>
</form>
<p>
<%
x1=request.Form("x1")
x2=request.Form("x2")
x3=request.Form("x3")
if x1<>"" or x2<>"" or x3<>"" then
set conn=server.CreateObject("adodb.connection")
conn.connectionstring="provider=microsoft.jet.oledb.4.0;data source="&server.MapPath("lx.mdb")
conn.open
set rs=server.CreateObject("adodb.recordset")
sql="select * from yh where xm like '"&"%"&x1&"%' and xb='"&x2&"'"
rs.open sql,conn,1,1
if rs.eof or rs.bof then
response.Write("没有您要的结果!")
else
%>
您查询的结果是:</p>
<table width="80%" border="1" cellspacing="0" cellpadding="0">
<%
do while not rs.eof
%>
<tr>
<td width="13%" height="25" align="center">姓名:</td>
<td width="87%"><%=rs("xm")%></td>
</tr>
<tr>
<td height="25" align="center">性别:</td>
<td><%=rs("xb")%></td>
</tr>
<tr>
<td height="25" align="center">年龄:</td>
<td><%=rs("nl")%></td>
</tr>
<%
rs.movenext
loop
%>
</table>
<%
rs.close
set rs=nothing
conn.close
set conn=nothing
end if
end if
%>
<p>x1=<%=x1%> </p>
<p>x2=<%=x2%> </p>
<p>x3=<%=x3%> </p>
<p><a href="index.asp">返回</p>
</body>
</html>
涂红的那个不要and xb='"&x2&"'"可以实现用姓名查询。加上就不行了。
谢谢大家了.终于找到方法解决了,请大家看看这个方案比较好.
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>
<body>
<form action="cx.asp" method="post" name="form1">
<p>查询条件:</p>
<p>姓名:
<label>
<input name="x1" type="text" id="x1">
</label>
</p>
<p>性别:
<label>
<input type="radio" name="x2" value="男">
男
</label>
<label>
<input type="radio" name="x2" value="女">
女
</label>
</p>
<p>年龄:
<label> </label>
<label>
<input name="x3" type="text" id="x3">
</label>
</p>
<p>
<label>
<input type="submit" name="Submit" value="提交">
</label>
</p>
</form>
<p>
<%
a=0
x1=request.Form("x1")
x2=request.Form("x2")
x3=request.Form("x3")
if x1<>"" or x2<>"" or x3<>"" then
set conn=server.CreateObject("adodb.connection")
conn.connectionstring="provider=microsoft.jet.oledb.4.0;data source="&server.MapPath("lx.mdb")
conn.open
set rs=server.CreateObject("adodb.recordset")
sql="select * from yh where 1=1" '1=1是避免所有查询字段为空时出错.
if x1 <> "" then
sql=sql & "and xm like '%"&x1&"%'"
end if
if x2<> "" then
sql=sql & "and xb='"&x2&"'"
end if
if x3<>"" then
sql=sql & "and nl='"&x3&"'"
end if
rs.open sql,conn,1,1
if rs.eof or rs.bof then
response.Write("没有您要的结果!")
else
%>
您查询的结果是:</p>
<table width="80%" border="1" cellspacing="0" cellpadding="0">
<%
do while not rs.eof
%>
<tr>
<td width="13%" height="25" align="center">姓名:</td>
<td width="87%"><%=rs("xm")%></td>
</tr>
<tr>
<td height="25" align="center">性别:</td>
<td><%=rs("xb")%></td>
</tr>
<tr>
<td height="25" align="center">年龄:</td>
<td><%=rs("nl")%></td>
</tr>
<%
a=a+1
rs.movenext
loop
%>
</table>
共有<%=a%>条记录.
<%
rs.close
set rs=nothing
conn.close
set conn=nothing
end if
end if
%>
<p>x1=<%=x1%> </p>
<p>x2=<%=x2%> </p>
<p>x3=<%=x3%> </p>
<p>sql=<%=sql%> </p>
<p><a href="index.asp">返回</p>
</body>
</html>