如何在同一个文本框中,实现对多个表的查询

lcug 2013-09-13 10:59:25
我想做一个像百度一样:如点击网页,就查询“网页”这一个表。点击新闻,就查“新闻”这一个表。(注:在这里我把网页和新闻各看成各的单独的表)!现在我把页面做完了,后台的查询也写完了,点击那个如百度样的文本框旁的按钮也可以实现下面对表的查询,但是它实现的是查询整个表,不是表中的某个字段,比如我想查邮件表中的收件人,他就查询不出来,出来的是整个数据!我碰到的问题是,我怎么知道那个文本框里查询的哪个表的哪个字段呢?不说多了,上个图吧!有图有真相,才清晰!
...全文
526 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
lcug 2013-09-23
  • 打赏
  • 举报
回复
引用 18 楼 u011484382 的回复:
这个判断啊,在Action中就能实现,前段用js判断,别死脑筋,想办法记录是哪个文本框代表哪个条件就行,一个文本框对应一个隐藏域,隐藏域的值写对应的哪个表,显示出来的显示要查的字段条件值,把文本框和他对应的值都传过去了,这不就解决了....
我没有用struts,我只用了hibernate的hql查询,文本框可以判断我查询的哪个表,单没有实现里面对某个字段的查询!
lcug 2013-09-23
  • 打赏
  • 举报
回复
引用 19 楼 u011484382 的回复:
<input type="text" id="id" value="查询关键字"/> <input type="hidden" id="id2" value="表明"/> 这两个是一组,就解决问题了,一起传到action中
我也搞了隐藏域,但貌似效果还是没成功!
lcug 2013-09-23
  • 打赏
  • 举报
回复
引用 17 楼 kehan628 的回复:
解释一下16楼的 如果 getEmail 不为空,其余全空,那么 sql="*** and email like '%***%' and subject like '%%' and sendermail like '%%' ****" 这样的话,我没运行过,反正感觉是不顺服 应该分开来写: if (in.getEmail() != null && !in.getEmail().equals("")){ sql += "and hs.email like '%" + in.getEmail() + "%'" } if(in.getSubject() != null && !in.getSubject().equals("")){ sql += "and hs.subject like'%" + in.getSubject() + "%'" } .... 这样你运行下看看
这样效果是跟那个一样的,我是为了方便所以才写的一起来的,刚开始我是写在一起!
猫眼糖 2013-09-23
  • 打赏
  • 举报
回复
这就是后台拼写SQL的问题啊,保证参数都正确传到后台就可以了,多表联合查询
Rookie__Li 2013-09-22
  • 打赏
  • 举报
回复
<input type="text" id="id" value="查询关键字"/> <input type="hidden" id="id2" value="表明"/> 这两个是一组,就解决问题了,一起传到action中
Rookie__Li 2013-09-22
  • 打赏
  • 举报
回复
这个判断啊,在Action中就能实现,前段用js判断,别死脑筋,想办法记录是哪个文本框代表哪个条件就行,一个文本框对应一个隐藏域,隐藏域的值写对应的哪个表,显示出来的显示要查的字段条件值,把文本框和他对应的值都传过去了,这不就解决了....
kehan628 2013-09-18
  • 打赏
  • 举报
回复
解释一下16楼的 如果 getEmail 不为空,其余全空,那么 sql="*** and email like '%***%' and subject like '%%' and sendermail like '%%' ****" 这样的话,我没运行过,反正感觉是不顺服 应该分开来写: if (in.getEmail() != null && !in.getEmail().equals("")){ sql += "and hs.email like '%" + in.getEmail() + "%'" } if(in.getSubject() != null && !in.getSubject().equals("")){ sql += "and hs.subject like'%" + in.getSubject() + "%'" } .... 这样你运行下看看
lcug 2013-09-16
  • 打赏
  • 举报
回复
引用 13 楼 kehan628 的回复:
1.百度是不同好几个网页做的分类 tieba.baidu.com zhidao.baidu.com 2.字段的问题用 from biao where fajianren like '%?%' or shoujianren like '%?%' or biaoti like '%?%'
我也用了几个网页,效果出来了,只是查询不到!下面我的sql语句: String sql = "from Emailinfo hs where 1=1"; if (in != null) { if (in.getEmail() != null && !in.getEmail().equals("") || in.getSubject() != null && !in.getSubject().equals("") || in.getSendermail() != null && !in.getEmail().equals("") || in.getEmailcontent() != null && !in.getEmailcontent().equals("")) { sql += "and hs.email like '%" + in.getEmail() + "%'" + "and hs.subject like'%" + in.getSubject() + "%'" + "and hs.sendermail like'%" + in.getSendermail() + "%'" + "and hs.emailcontent like'%" + in.getEmailcontent() + "%'"; } 原理跟你差不多,只是可能性能不是很好!
lcug 2013-09-16
  • 打赏
  • 举报
回复
我也用了几个网页,效果出来了,只是查询不到!
lcug 2013-09-16
  • 打赏
  • 举报
回复
我觉得既然各自的表都可以查到,主要是里面的字段查不到,问题一:sql语句没写好,二:加标识符来判断文本框应用查询哪个!你们认为呢?
kehan628 2013-09-16
  • 打赏
  • 举报
回复
1.百度是不同好几个网页做的分类 tieba.baidu.com zhidao.baidu.com 2.字段的问题用 from biao where fajianren like '%?%' or shoujianren like '%?%' or biaoti like '%?%'
逍遥jc 2013-09-16
  • 打赏
  • 举报
回复
获取前面标签的text值,然后根据这个text值条件查询不行么?比如收件人标签的ID设置为aa_1,后面跟着的文本框的ID设置为bb_1。
对java有感觉 2013-09-15
  • 打赏
  • 举报
回复
我说下我的个人想法 就是你可以在下面放几个radio。比如新闻。网页。这个状态来判断执行那个表的查询点查询的时候获取这个radio的值然后拼接传到后台去查询就可以了。这样查询的时候也要考虑到你的js能力了。可以尝试一下。
无聊找乐 2013-09-15
  • 打赏
  • 举报
回复
改变一下思路,不要用一种请求处理所有的查询 不同的查询发不同的请求, 服务端用不同的Action处理(如果用的是struts2的话)
piaobo14 2013-09-15
  • 打赏
  • 举报
回复
后台查询如果在servlet中的话 可以判断输入的参数来动态拼接SQL语句
蟹道人 2013-09-14
  • 打赏
  • 举报
回复
引用
表是可以查询到了!如点击IP信息,IP信息字体就会变颜色!说明文本框里查询的是IP信息表!表格控件也一样,其他的也是的!现在问题是点击按钮,他出来整个表,而不是我要查询的结果!我要文本框里要查询表中的某个字段!比如我要到文本框里搜入:曼联!下面就会输出相对应表里有曼联这个字段相关联的结果!
输出的不是你想要的结果,而是整个表。这说明你的sql语句可能出现了问题!!
lcug 2013-09-14
  • 打赏
  • 举报
回复
表是可以查询到了!如点击IP信息,IP信息字体就会变颜色!说明文本框里查询的是IP信息表!表格控件也一样,其他的也是的!现在问题是点击按钮,他出来整个表,而不是我要查询的结果!我要文本框里要查询表中的某个字段!比如我要到文本框里搜入:曼联!下面就会输出相对应表里有曼联这个字段相关联的结果!
lcug 2013-09-13
  • 打赏
  • 举报
回复
但也只能传一个啦!我要查询多个表!比如像百度上--网页--知道--贴吧等等!文本框里怎么知道要查询哪个表呢?页面上是可以实现查询了,我也传过去了,但我要模糊查询!实现对收件人的查询?怎么做呢?
  • 打赏
  • 举报
回复
点击链接,把对应的查询类型和查询条件传过去就好了。
xiaohuashenshou 2013-09-13
  • 打赏
  • 举报
回复
菜单上绑表的名称就OK了
加载更多回复(3)

81,095

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧