2016-07-30 8 views
0

Ich habe zwei Tabellen in MySQL-Datenbank, eine für Schüler und eine für Lehrer. Beide Tabellen haben die gleichen Spalten.Wählen Sie Tabelle nach Eingabe in Jsp

Der folgende Code fügt Daten nur in den Lehrertisch ein. Wenn der Benutzer den Radioknopf des Lehrers auswählt, sollten die Anmeldungsdaten in der Tabelle des Lehrers gespeichert werden. Wenn der Benutzer das Radio des Schülers auswählt, sollten die Anmeldungsdaten im Schülertisch gespeichert werden. Was wird eine Lösung dafür sein?

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"); 

    String Sql="insert into teacher2(firstname,lastname,username,password,confirmpassword,email,month,day,year,gender) values('"+name+"','"+abc+"','"+cde+"','"+pass+"','"+confpass+"','"+emails+"','"+months+"','"+day+"','"+year+"','"+gender+"')"; 
    st.executeUpdate(Sql); 
%> 

nach Korrektur 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); 
    %> 

Was ist falsch in diesem query.Why diese Abfrage einfügen Daten in einem nur eine Tabelle von Studenten

index.jsp

<input type="radio" name="gender" value="teacher" checked/> Teacher 
    <input type="radio" name="gender" value="Student"/>Student 

statement2.jsp

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); 
+0

Dieser Code hat Lehrer Ich möchte nur eine Tabellendaten eingefügten Daten in Schüler einzufügen, was wird Code dafür sein? –

Antwort

0

einfach eine entsprechende Tabelle wählen und es dann auf Ihre Abfrage-Anweisung übergibt mit

<% 
    String gender = request.getParameter("gender"); 
    if (gender != null) { 
    String table = gender.equals("teacher") ? "teacherTable" : "studentTable"; 
    // replace dots with your values 
    String query = "INSERT INTO " + table + "(...) VALUES (...)"; 
    st.executeUpdate(query); 
    } 
%> 

Hinweis, dass es nicht die beste Wahl zu einem anderen jsp zu umleiten und scriplets dort verwenden (die durch Spezifikation abgeraten) um übermittelte Daten zu verarbeiten. Ich würde Ihnen eher empfehlen, das Formular an ein Servlet zu senden und dort den gesamten Java-Code zu schreiben.

Sie können auch einen Blick auf PreparedStatement anstatt Statement werfen. wenn der Benutzer wählen Optionsfeld der Schüler

Schauen Sie sich diese Antworten, wenn Sie

How to avoid Java code in JSP files?

When should we use a PreparedStatement instead of a Statement?

interessiert sind
+0

Es sagt Ihnen, dass Sie Syntaxfehler mit Klammern haben. Überprüfen Sie, ob alle öffnenden und schließenden Klammern vorhanden sind. – tarashypka

+0

Daten nicht in Lehrer-Tabelle einfügen, wenn Radiobutton auf Lehrer ist, aber in Schüler-Tabelle einfügen, wenn Radioknopf auf Schüler ist –

+0

'Lehrer' in' gender.equals ("Lehrer")? "teacher2": "student"; "sollte mit' Teacher' übereinstimmen "', also ersetzen Sie 'Teacher' durch' teacher'. – tarashypka

Verwandte Themen