ASP搜索表单修改问题。

<formaction="so.asp"method="get"name="add"><divstyle="width:462px;height:45px;margin:... <form action="so.asp" method="get" name="add">
<div style="width:462px; height:45px; margin:10px auto; background:url(images/form_search.png)">
<input type="text" name="key" style=" width:260px;height:16px; padding:2px 5px 2px 6px;border:0px; line-height:16px; margin-top:13px; margin-left:40px"/>
<select name="t" style="margin-left:10px">
<option value="">选择栏目</option>
<option value="1">新闻频道</option>
<option value="2">产品展示</option>
<option value="3">案例展示</option>
<option value="4">资料下载</option>
</select>
<input type="submit" name="button" id="button" value="搜索" />
</div>
</form>
</div>
<%
t=request.QueryString("t")
key=request.QueryString("key")
if t="" then
Response.Write("<script>alert('请选择要搜索的栏目!');history.back();</script>")
Response.End()
end if
if key="" then
Response.Write("<script>alert('请输入关键词!');history.back();</script>")
Response.End()
end if
set rs=server.createobject("adodb.recordset")
if t=1 then
exec="select * from [news] where title like '%"&key&"%' order by id desc "
elseif t=1 then
exec="select * from [Products] where title like '%"&key&"%' order by id desc "
elseif t=1 then
exec="select * from [case] where title like '%"&key&"%' order by id desc "
else
exec="select * from [download] where title like '%"&key&"%' order by id desc "
end if

代码如上。

现在我想去掉选择框,直接搜索数据库所有或固定几个表内的数据。该怎么修改呢?
<%if t=1 then%>
<table width="100%" border="0" align="center" cellpadding="5" cellspacing="0">
<tr>

</tr>
</table>
<%elseif t=2 then%>
<div style="width:150px; height:180px; float:left; text-align:center; margin:5px; line-height:20px; font-size:12px;"></div>
<%elseif t=3 then%>
展开
 我来答
百度网友577f80d
2013-10-29 · TA获得超过791个赞
知道小有建树答主
回答量:1352
采纳率:66%
帮助的人:528万
展开全部

你代码上的if  elseif  t=1  怎么都是  t=1呢,我认为你写错了;分别是 t=1 t=2 t=3 t=4;

 

如果你只根据输入的关键字来查询不同的数据表,实际是可以的;

这里边就涉及到几个方面的问题;

  1. 各个数据表是否有关联关系,如果有关联关系,可以结合关系联合查询;

     

  2. 如果各个表没有关系,就得根据"关键字"分别查询,就是分别查表;

     

  3. 你查询出来的结果要怎么展示,因为不同的表,内容就不同显示样式就不同;

     

结合以上问题,建议你 这样操作:

获得表单"关键字" 后分别对各个数据表进行查询,然后对返回的记录集进行页面输出,在页面上构建不同的区域进行展示;

更多追问追答
追问
您真的挺细心。T的确是=1=2=3,我刚刚做了一下修改,没改回来。

所有表都有TITLE字段。

查询结果也分别显示呢?
追答
我所谓的各个数据表有关联关系,指的不是有同样的字段;
所谓的关联对应关系,例如
表A 记录 表B记录
字段1 字段2 字段x 字段0 字段1 字段2 字段x

其中表B的字段0等于表A的字段1,这样的对应关系;
但是看你的表基本上没有这个关系,不讨论了;

查询结果分开显示
如果要是放到一个页面上,那就分别列出即可(上下 4个部分 分别列出 ,或者 tab标签项)
如果分开多个页,就需要在当前结果页面上显示4个 提示连接 (新闻结果\产品结果\案例结果\下载结果) 然后进入后列出具体内容;
小萌乐乐
2013-10-29 · TA获得超过128个赞
知道小有建树答主
回答量:465
采纳率:0%
帮助的人:224万
展开全部
因为你要查询的内容不在同一张表中,不可以一次对所有的表进行搜索。
更多追问追答
追问
那只要不用选择框。全在代码里进行多次操作呢。
追答
那你只搜索一张表就行了,如,只查询产品
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-10-29
展开全部
判断语句错了
if t=1 then
.......
elseif t=2 then
....
elseif t=3 then
...
end if
如果想搜索几张表就需要关联几张表,并且表必须是父与子的关系,不能有了儿子没有父亲这类的表
sql="select * from products join case on proid=caid where ...."

(这个是我举得例子,假如两张表的Proid=caid)
如果没有关系你确实只有单独的写了。
如果去掉下拉菜单,
可以写个隐藏域来传递值
追问
嗯。是啊。其实现在的代表也是按T的条件进行查询及显示结果的。
请问隐藏域来传递值 这样的方法,代码该怎么修改呢?

只要去掉搜索框,结果在同一页内显示就行。
追答
显示的结果就看你自己了,现在隐藏域被运用的很多,比如像你这样的,等等,你应该知道在哪里添加隐藏域噻,隐藏域的意思就是把你不想显示的东西隐藏一起,你直接在你的那个上加个隐藏域,其他的没什么变化的,自己在改改哈
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式