📄 errorpad.jsp
字号:
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" %>
<%@ page import="java.sql.*"%>
<%@ page import="jinghua.Tools"%>
<%@ page import="java.util.*"%>
<jsp:useBean id="DBCon" class="jinghua.JinghuaConn" scope="session">
</jsp:useBean>
<%!Connection con;
boolean debug=false;
String studentID="";
String gradenote="";
String gradename="";
Statement stmt=null;
ResultSet rs=null;
String sql="";
int pageNumber=0;
String sqlCon=null;
int testNumber=0;
//ArrayList arrQuestSel=null;
String[] arrID=null;
String[] arrSelect=null;
//QuestSel qs=null;
int EveryPage=10;//每页显示的记录数;
int OnPage=1; //当前显示的页数;
int Total=0;//记录的总数;
int TotalPage=0;//记录的总页数;
%>
<%
String strPage=request.getParameter("page");//查询页数
String prePage=request.getParameter("OnPage");
if(debug) {
out.print("<br>page="+strPage);
out.print("<br>OnPage="+prePage);
}
if(strPage==null)
OnPage=1;
else
OnPage=Integer.parseInt(strPage);
String studentID ="s11"; //tools.getString((String)session.getAttribute(Configure.sessUserNo));
//BaseInfo objBase = new BaseInfo(studentID);
//Privs objPrivs = objBase.getPrivs();
//String vcGrade = objPrivs.getGrade();
try{
con=DBCon.getConnection();
//获取学生的年级信息
gradenote="c1";
gradename="初一";
//查询学生所属年级的错题
%>
<%
//构造查询条件
//String errorpad_grade=(String)session.getAttribute("errorpad_grade");
//String errorpad_sub=(String)session.getAttribute("errorpad_sub");
//String errorpad_knowpoint=(String)session.getAttribute("errorpad_knowpoint");
//String errorpad_testtype=(String)session.getAttribute("errorpad_testtype");
//String errorpad_errorcount=(String)session.getAttribute("errorpad_errorcount");
sqlCon="";
//String errorpad_grade=request.getParameter("Grade");
String errorpad_sub=request.getParameter("Subject");
String errorpad_knowpoint=request.getParameter("KnowPoint");
String errorpad_testtype=request.getParameter("testtype");
String errorpad_errorcount=request.getParameter("errorcount");
if(debug){
out.print("<br>grade="+//errorpad_grade+
"<br>sub="+errorpad_sub+
"<br>knowpoint="+errorpad_knowpoint+
"<br>testtype="+errorpad_testtype+
"<br>errorcunt="+errorpad_errorcount);
}
//if(errorpad_grade!=null)
//{
// session.setAttribute("errorpad_grade",errorpad_grade);
//}
//else
//{
// errorpad_grade=(String)session.getAttribute("errorpad_grade");
//}
if(errorpad_sub!=null)
{
session.setAttribute("errorpad_sub",errorpad_sub);
}else
{
errorpad_sub=(String)session.getAttribute("errorpad_sub");
}
if(errorpad_knowpoint!=null)
{
session.setAttribute("errorpad_knowpoint",errorpad_knowpoint);
}
else
{
errorpad_knowpoint=(String)session.getAttribute("errorpad_knowpoint");
}
if(errorpad_testtype!=null)
{
session.setAttribute("errorpad_testtype",errorpad_testtype);
}
else
{
errorpad_testtype=(String)session.getAttribute("errorpad_testtype");
}
if(errorpad_errorcount!=null)
{
session.setAttribute("errorpad_errorcount",errorpad_errorcount);
}
else
{
errorpad_errorcount=(String)session.getAttribute("errorpad_errorcount");
}
//if(errorpad_grade==null)
// errorpad_grade="all";
if(errorpad_sub==null)
errorpad_sub="all";
if(errorpad_knowpoint==null)
errorpad_knowpoint="all";
if(errorpad_testtype==null)
errorpad_testtype="all";
if(errorpad_errorcount==null)
errorpad_errorcount="0";
//if(errorpad_grade!=null){
// if(!errorpad_grade.equals("all")){
// if(errorpad_grade.equals("c")){
// sqlCon="(question.gradenote='c1' OR question.gradenote='c2' OR question.gradenote='c3')";
// }else if(errorpad_grade.equals("g")){
// sqlCon="(question.gradenote='g1' OR question.gradenote='g2' OR question.gradenote='g3l' OR question.gradenote='g3w')";
// }
// else
// sqlCon="(question.gradenote='"+errorpad_grade+"')";
// }
//}
if(debug)
out.println("<br>grade sql="+sqlCon);
if(errorpad_sub!=null){
if(!errorpad_sub.equals("all")){
if (!sqlCon.equals(""))
sqlCon=sqlCon +" AND (question.SubjectID="+errorpad_sub+")";
else
sqlCon=" (question.SubjectID="+errorpad_sub+")";
}
}
if(debug)
out.println("<br>subject sql="+sqlCon);
if(errorpad_knowpoint!=null){
if(!errorpad_knowpoint.equals("all")){
if(!sqlCon.equals(""))
sqlCon=sqlCon+" AND(question.KnowPointID1="+errorpad_knowpoint +
" OR question.KnowPointID2="+errorpad_knowpoint+
" OR question.KnowPointID3="+errorpad_knowpoint+")";
else
sqlCon=" (question.KnowPointID1="+errorpad_knowpoint +
" OR question.KnowPointID2="+errorpad_knowpoint+
" OR question.KnowPointID3="+errorpad_knowpoint+")";
}
}
if(debug)
out.println("<br>knowpoint sql="+sqlCon);
if(errorpad_testtype!=null){
if(!errorpad_testtype.equals("all")){
if(!sqlCon.equals(""))
sqlCon=sqlCon+ " AND(errorpad.sourcetype="+errorpad_testtype+")";
else
sqlCon= " (errorpad.sourcetype="+errorpad_testtype+")";
}
}
if(debug)
out.println("<br>testtype sql="+sqlCon);
if(errorpad_errorcount!=null){
if(!sqlCon.equals(""))
sqlCon=sqlCon+ " AND(errorpad.errorcount>="+errorpad_errorcount+")";
else
sqlCon=" (errorpad.errorcount>="+errorpad_errorcount+")";
}
if(debug)
out.println("<br>errorcount sql="+sqlCon);
sqlCon="(`errorpad`.`stu_id` = 's11')"+" AND"+sqlCon;
//查询满足条件的错题
sql="SELECT `errorpad`.`id`, `errorpad`.`question_id`, `question`.`QuestText`, DATE_FORMAT( `errorpad`.`add_date`,\"%Y-%m-%e %H:%i:%S\") AS add_date, "+
" `errorpad`.`errorcount`, ELT(`errorpad`.`sourcetype`,\"自由测试\",\"自由单元测试\",\"模拟考试\") as sourcename, "+
" `grade`.`Name` AS `gradename`,`subject`.`name` as `subname`"+
" FROM `errorpad`"+
" LEFT OUTER JOIN `question` ON (`errorpad`.`question_id` = `question`.`ID`)"+
" LEFT OUTER JOIN `grade` ON (`question`.`gradenote` = `grade`.`note`)"+
" LEFT OUTER JOIN `subject` ON (`question`.`SubjectID` = `subject`.`ID`)"+
" WHERE "+sqlCon+
" ORDER BY `errorpad`.`add_date` ASC,`errorpad`.`ID`";
session.setAttribute("errorpad_sqlcon",sqlCon);
session.setAttribute("errorpad_sql",sql);
if(debug)
out.println("<br>at last sql="+sql);
stmt=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
rs=stmt.executeQuery(sql);
//是否是新的查询
String newQuery=request.getParameter("newQuery");
if(newQuery==null)
newQuery="false";
if(debug)
out.print("<br>newQuery="+newQuery);
if(newQuery.equals("true"))
{//构造新的试题选择数组
StringBuffer sb1=new StringBuffer();
StringBuffer sb2=new StringBuffer();
//arrQuestSel=new ArrayList();
while(rs.next()){
//QuestSel qs=new QuestSel();
//qs.id=rs.getInt("ID");
sb1.append(rs.getString("ID")+",");
sb2.append("0,");
//arrQuestSel.add(qs);
}
arrID=sb1.toString().split(",");
arrSelect=sb2.toString().split(",");
//session.setAttribute("arrQuestSel",arrQuestSel);
session.setAttribute("arrID",arrID);
session.setAttribute("arrSelect",arrSelect);
}else{
//arrQuestSel=(ArrayList)session.getAttribute("arrQuestSel");
arrID=(String[])session.getAttribute("arrID");
arrSelect=(String[])session.getAttribute("arrSelect");
}
//if(arrQuestSel==null)
// out.print("<br>arrQuestSel=null");
//处理旧页面
String order_chk=request.getParameter("order_chk");
if(debug){
out.print("<br>order_chk="+order_chk);
out.print("<br>arrID="+arrID.toString());
out.print("<br>arrSelect="+arrSelect.toString());
}
if(order_chk!=null && !order_chk.equals("temp")){
//145:0#146:1#
String arrOrder_Sin[]=null;
String arrOrder_chk[]=order_chk.split("#");
for(int i=0;i<arrOrder_chk.length;i++){
if(debug)
out.print("<br> arrorder_chk["+i+"]="+arrOrder_chk[i]);
arrOrder_Sin=arrOrder_chk[i].split(":");
arrSelect[Integer.parseInt(arrOrder_Sin[0])-1]=arrOrder_Sin[1];
}
}
rs.last();//移到最后一条记录;
Total=rs.getRow();//记录的总数;
//计算出总的页数TotalPage;
if(Total%EveryPage==0)
TotalPage=Total/EveryPage;
else
TotalPage=Total/EveryPage+1;
if(OnPage>TotalPage)
{
OnPage=TotalPage;
}
else if(OnPage<=0)
{
OnPage=1;
}
//生成一个javascript数组
//<script language ="JavaScript">
//Quest_Order=new Array()
//Quest_Order[0]=new Array(91,98);
//Quest_Order[9]=new Array(91,107);
//</script>
out.println("<script language =\"JavaScript\">");
out.println("Quest_Order=new Array();");
rs.absolute((OnPage-1)*EveryPage+1);//指定指针的位置;
pageNumber=0;
testNumber=(OnPage-1)*EveryPage+1;
while( pageNumber<EveryPage ) {
out.println("Quest_Order["+pageNumber+"]=new Array("+testNumber+","+rs.getInt("ID")+");");
pageNumber++;
testNumber++;
if(!rs.next())
break;
}
out.println("var QOCount="+pageNumber+";");
out.println("</script>");
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -