这是表结构:
create table flightTable
(
f_name varchar(40),
f_num varchar(40),
f_up_year varchar(40),
f_up_month varchar(40),
f_up_day varchar(40),
f_up_time varchar(40),
f_up_place varchar(40),
f_down_time varchar(40),
f_down_place varchar(40),
f_whole_time varchar(40),
f_price varchar(20),
f_scale varchar(40)
)
网上搜不到类似繁琐的例子,请大家帮忙,我24好就要交的作业!拜托大家一定要帮一下菜鸟的忙。
以下是下女子自己写的,可是总是SQL异常!向大家求助!
<%//构造查询SQL语句
  String sqlString=null;//SQL语句
  String fupplace=codeToString(request.getParameter("fupplace"));
  String fdownplace=codeToString(request.getParameter("fdownplace"));
  String fupyear=codeToString(request.getParameter("fupyear"));
  String fupmonth=codeToString(request.getParameter("fupmonth"));
  String fupday=codeToString(request.getParameter("fupday"));
  String fuptime=codeToString(request.getParameter("fuptime"));
  String fname=codeToString(request.getParameter("fname"));
  String order=codeToString(request.getParameter("order"));
  String orderselection=codeToString(request.getParameter("orderselection"));
  if(orderselection=="up")
    {if(order=="fwholetime")
      sqlString=new String("SELECT * FROM flightTable f_up_place='"+fupplace.trim()+"' and f_down_place='"+fdownplace.trim()+"' order by f_whole_time ASC");
    else
      if(order=="fdowntime")
      sqlString=new String("SELECT * FROM flightTable f_up_place='"+fupplace.trim()+"' and f_down_place='"+fdownplace.trim()+"' order by f_down_time ASC");
      else
        if(order=="fuptime")
          sqlString=new String("SELECT * FROM flightTable f_up_place='"+fupplace.trim()+"' and f_down_place='"+fdownplace.trim()+"' order by f_up_time ASC");
        else
          sqlString=new String("SELECT * FROM flightTable f_up_place='"+fupplace.trim()+"' and f_down_place='"+fdownplace.trim()+"' order by f_price ASC");
    }
  else
   { if(order=="fwholetime")
      sqlString=new String("SELECT * FROM flightTable f_up_place='"+fupplace.trim()+"' and f_down_place='"+fdownplace.trim()+"' order by f_whole_time DESC");
    else
      if(order=="fdowntime")
      sqlString=new String("SELECT * FROM flightTable f_up_place='"+fupplace.trim()+"' and f_down_place='"+fdownplace.trim()+"' order by f_down_time DESC");
      else
        if(order=="fuptime")
          sqlString=new String("SELECT * FROM flightTable f_up_place='"+fupplace.trim()+"' and f_down_place='"+fdownplace.trim()+"' order by f_up_time DESC");
        else
          sqlString=new String("SELECT * FROM flightTable f_up_place='"+fupplace.trim()+"' and f_down_place='"+fdownplace.trim()+"' order by f_price DESC");
     }
%> 
其中UP和DOWN表示升序降序!排序“按起飞时间,降落时间,价格,航班公司”几种!
可是上面我写得还很不完善,因为没有涉及起飞日期,应该加在那好呢?

解决方案 »

  1.   

    怎么整个表结构都是varchar的啊
      

  2.   

    谢谢lxzm1001(*蓝星织梦*) 一直关注我的帖子!
    我改了一下刚才的程序,因为大意,selelct * from 后没写where :<,加上后能根据出发及目的地点查询。
    之后我有做改进:
    sqlString=new String("SELECT * FROM flightTable where f_up_year='"+fupyear.trim()+"' and f_up_month='"+fupmonth.trim()+" and f_up_day='"+fupday.trim()+"' in (SELECT * FROM flightTable where f_up_place='"+fupplace.trim()+"' and f_down_place='"+fdownplace.trim()+"')  order by f_whole_time ASC");
    就是用了这样的方式:select * from Table where ... in (select * Table)得形势,不只对否?这种形式可以针对同一个Table么?因为有出现了SQL异常,显然是这里出的问题!