这是表结构:
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表示升序降序!排序“按起飞时间,降落时间,价格,航班公司”几种!
可是上面我写得还很不完善,因为没有涉及起飞日期,应该加在那好呢?
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表示升序降序!排序“按起飞时间,降落时间,价格,航班公司”几种!
可是上面我写得还很不完善,因为没有涉及起飞日期,应该加在那好呢?
我改了一下刚才的程序,因为大意,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异常,显然是这里出的问题!