2016-07-31 26 views
-3

我在mysql數據庫中有兩個表,一個給學生,一個給老師。兩個表都有相同的列。如何根據單選按鈕選擇一個mysql表來插入數據?我的jsp/java代碼出了什麼問題?爲什麼單選按鈕不起作用?

下面的代碼只將數據插入到老師的表中。如果用戶選擇教師的單選按鈕,則註冊數據應存儲在教師表中。如果用戶選擇學生的收音機,那麼註冊數據應該存儲在學生的表格中。我的jsp/jdbc代碼中出現了什麼問題?什麼將是一個解決方案呢?

這個查詢有什麼問題。爲什麼這個查詢插入的數據只在mysql的學生表中,而不是在teacher2表中。 要麼選擇教師/學生單選按鈕

收音機,但不工作

String gender = request.getParameter("gender"); 
if (gender != null) { 
String table = gender.equals("teacher") ? "teacher2" : "student"; 
// replace dots with your values 
String query = "INSERT INTO " + table + "(firstname,lastname,username,password,confirmpassword,email,month,day,year,gender) VALUES ('"+name+"','"+abc+"','"+cde+"','"+pass+"','"+confpass+"','"+emails+"','"+months+"','"+day+"','"+year+"','"+gender+"')"; 
st.executeUpdate(query);} 

問題是在這裏還要

st.executeUpdate(query); //但是插入MySQL的數據

enter image description here

的index.jsp

<form method="GET " action="statement2.jsp" autocomplete="on"> 
    <input type="radio" name="gender" value="teacher" checked/> Teacher 
    <input type="radio" name="gender" value="Student"/>Student 
    <input type="submit" value="Login" /> 
    <input type="button" onclick="location.href='reg.jsp';" value="Sign Up" /> 
    </form> 

statement2.jsp

<% 
    String name=request.getParameter("first"); 
    String abc=request.getParameter("last"); 
    String cde=request.getParameter("user"); 
    String pass=request.getParameter("password"); 
    String confpass=request.getParameter("confirmpass"); 
    String emails=request.getParameter("email"); 
    String months=request.getParameter("month"); 
    String day=request.getParameter("day"); 
    String year=request.getParameter("year"); 

    String gender = request.getParameter("gender"); 
    if (gender != null) { 
    String table = gender.equals("teacher") ? "teacher2" : "student"; 
// replace dots with your values 
    String query = "INSERT INTO " + table + "(firstname,lastname,username,password,confirmpassword,email,month,day,year,gender) VALUES ('"+name+"','"+abc+"','"+cde+"','"+pass+"','"+confpass+"','"+emails+"','"+months+"','"+day+"','"+year+"','"+gender+"')"; 
    st.executeUpdate(query);}  // problem is here 

%> 

reg.jsp // registeration頁面註冊

 <form method="GET" action="statement2.jsp" autocomplete="on"> 
     <input id="firstnamesignup" name="first" required="required" type="text" placeholder="First" /> 
    <input id="lastnamesignup" name="last" required="required" type="text" placeholder="Last" /> 

    <select name="gender"> 
    <option value="male">Male</option> 
    <option value="female">Female</option> 
    </select>  
    </form> 

分貝conn.jsp //這個文件是數據庫連接

<%@page import="com.mysql.jdbc.Connection"%> 
<%@page import="com.mysql.jdbc.Statement"%> 
<%@page import="java.sql.ResultSet"%> 
<%@page import="java.sql.DriverManager"%> 
<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<%@ page import ="java.sql.*" %> 
<% 
Connection c1 = null; 
Statement st = null; 
ResultSet rs = null; 

Class.forName("com.mysql.jdbc.Driver"); 
c1 = (Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/teacher","root", "abcde"); 

{ 
    System.out.println("Couldn't find the driver!"); 
    System.out.println("Couldn't connect: print out a stack trace and exit."); 
    System.out.println("We got an exception while creating a statement:" + "that probably means we're no longer connected."); 

    st = (Statement) c1.createStatement(); 
       System.out.println("Statement Created Successfully"); 
    { 
    System.out.println("We got an exception while creating a statement:" + "that probably means we're no longer connected."); 
    } 
    if (c1!= null) { 
    System. out.println("Hooray! We connected to the database!"); 
    } else { 
    System.out.println("We should never get here."); 
    }} 

%> 
+0

@Jens我的代碼錯了嗎? –

+1

我不知道。使用調試器找出它 – Jens

+0

如果你使用mysql,不要用SQL-Server標籤標記你的問題。這是不一樣的 – Jens

回答

0

我相信這裏的問題是不是查詢而是對參數值的性別你的編碼String table = gender.equals("teacher") ? "teacher2" : "student"條件運算符是一個決定哪張表應該被插入,然後你把表變量和它的查詢一起追加,所以我的結論是性別參數沒有返回使得表變量總是「學生」的「教師」值。我建議你首先檢查性別返回的參數。

+0

我已經添加了我的所有jsp文件現在檢查我認爲問題也在這裏'st.executeUpdate(query);'這裏' Teacher Student' –