String a=request.getParameter("a");
String b=request.getParameter("b");
String c=request.getParameter("c");
String sql="select * from abc where 1=1 ";
if(!a.equals(""))
{
   sql +=" and a='"+a+"'";
}
if(!b.equals(""))
{
   sql +=" and b='"+b+"'";
}
if(!c.equals(""))
{
   sql +=" and c='"+c+"'";
}

解决方案 »

  1.   

    a,b,c
    sql=...
    if(validate(a))sql+=...
    if(validate(b))sql+=...
    if(validate(c))sql+=...
    if(a.equals("")&&a.equals("")&&a.equals(""))
    OK!楼上的,五个星星以上是什么?
      

  2.   

    判断三个输入是否为空最好在客户端,以减少服务器的负担。可以用javascript、vbscript等前台脚本语言。<Script language="javascript">
    <!--function checkInput(myForm)
    {
    if(myForm.a.value==""&&myForm.b.value==""&&myForm.c.value=="")
    {
    alert("请输入查询内容");
    myForm.a.focus();
    return(false);
    }}
    //-->
    </script><form action="" method="post" name="myForm" onSubmit="return checkInput(this)">
    ………………</form>
    如果有合法的输入,查询的时候可以用楼上的方法!!
      

  3.   

    String a=request.getParameter("a");
    String b=request.getParameter("b");
    String c=request.getParameter("c");
    String sql="select * from abc where 1=1 ";
    if(!a.equals(""))
    {
       sql +=" and a='"+a+"'";
    }
    if(!b.equals(""))
    {
       sql +=" and b='"+b+"'";
    }
    if(!c.equals(""))
    {
       sql +=" and c='"+c+"'";
    }忘了说了,在a,b,c三项中,有组合查询的情况,比如:a b ,a c ,b c ,abc,组合查询。
    所以上面的方法不是很合适。
      

  4.   


    <Script language="javascript">
    <!--function checkInput(warehouse)
    {
    if((warehouse.warehouse_id.value=="") && (warehouse.bill_no.value=="") && (warehouse.item_no.value==""))
    {
    alert("请输入查询内容");
    warehouse.warehouse_id.focus();
    return(false);
    }}
    //-->
    </script><form name="warehouse" method="post" action="" onSubmit="return checkInput(warehouse)">……</form>其中当if((warehouse.warehouse_id.value=="") && (warehouse.bill_no.value=="") && (warehouse.item_no.value==""))时,页面不起作用,
    当为if(warehouse.warehouse_id.value=="")时,页面就可以起作用,难道javascript不能用“与”吗???还请高手帮忙,谢谢