السلام عليكم
الصفحة الاولى هي صفحة الCart يعني تعرض المنتجات الخاصة بهالمستخدم ... اذا ضغط المستخدم على submit , تتخزن هالبيانات في جدول الorder
هذا كود صفحة الCart :
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<%@page import="java.lang.String"%>
<%@ page import="java.sql.*" %>
<%! Date today;%>
<%@ page session="true"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<h1>your Cart</h1>
<%@ page import="java.sql.*" %>
<%
try {
Connection con = null;
String databaseURL = "jdbc:mysql://localhost:3306/fashion";
String driverName = "com.mysql.jdbc.Driver";
String user = "root";
String password = "root";
String Cust_ID = (String) session.getAttribute("Cust_ID");
Class.forName(driverName).newInstance();
con = DriverManager.getConnection(databaseURL, user, password);
if (!con.isClosed()) {
System.out.println("Successfully connected to the DataBase Server...");
}
Statement statement;
statement = con.createStatement();
String selectQuery = "SELECT * FROM Cart where Cust_ID= '" + Cust_ID + "'";
ResultSet resultSet = null;
resultSet = statement.executeQuery(selectQuery);
if (resultSet != null) // Succes
{
while (resultSet.next()) {
Integer Pro_ID = (Integer) resultSet.getObject("Pro_ID");
Integer price = (Integer) resultSet.getObject("Pro_Price");
Integer Quantity = (Integer) resultSet.getObject("Cart_Quantity");
Integer size = (Integer) resultSet.getObject("size");
java.util.Date date = new java.util.Date();
long t = date.getTime();
java.sql.Date sqlDate = new java.sql.Date(t);
java.util.Date dt = new java.util.Date();
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd");
String currentTime = sdf.format(dt);
%>
<form name = "form " action="addtoOrder" method = "POST" >
<input type="hidden" value="<%=Cust_ID%>" name="Cust_ID">
<input type="hidden" value="<%=Pro_ID%>" name="productID">
<input type="hidden" value="<%=price%>" name="price">
<input type="hidden" value="<%=Quantity%>" name="Quantity">
<input type="hidden" value="<%=size%>" name="size">
<input type="hidden" value="<%=currentTime%>" name="date">
<input type="submit" value="Confirm" name="submit" />
<%
System.out.println(currentTime);
out.println("product No:" + Pro_ID);
out.println("size:" + size);
out.println("Quantity" + Quantity);
out.println("price" + price + "<br/>");%>
</form>
<% }
resultSet.close();
}
statement.close();
if (con != null) {
con.close();
}
} catch (Exception e) {
System.err.println("Exception: " + e.getMessage());
}
%>
<a href="index.jsp">Home</a> <br><br>
</body>
</html>هذا كود الadd to order : insert
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.sql.*;
import javax.servlet.RequestDispatcher;
/**
*
* @author 200610736
*/
public class addtoOrder extends HttpServlet {
/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
// Get User Inputs
String Cust_ID = request.getParameter("Cust_ID");
String Pro_ID = request.getParameter("productID");
String price = request.getParameter("price");
String Quantity = request.getParameter("Quantity");
String size = request.getParameter("size");
String order_date = request.getParameter("date");
//Connect to Database
Connection con = null;
Statement stmt = null;
String databaseURL = "jdbc:mysql://localhost:3306/fashion";
String driverName = "com.mysql.jdbc.Driver";
String user = "root";
String pass = "root";
try {
Class.forName(driverName).newInstance();
con = DriverManager.getConnection(databaseURL, user, pass);
stmt = con.createStatement();
} catch (Exception e) {
System.out.println("ERROR Connecting to DB: " + e);
return;
}
//Insert data
String insertStmt = "insert into order values ("
+ Cust_ID + ", "
+ Pro_ID + ", "
+ Quantity + ", "
+ size + ", "
+ price + ", "
+ "'" + order_date + "'"
+ ")";
System.out.println(insertStmt);
try {
stmt.executeUpdate(insertStmt);
} catch (Exception e) {
System.out.println("ERROR: Insert into DB: " + e);
return;
}
RequestDispatcher dispatcher =
getServletContext().getRequestDispatcher("/myCart.jsp?Cust_ID='" + Cust_ID + "'");
dispatcher.forward(request, response);
//Close database
try {
stmt.close();
con.close();
} catch (SQLException e) {
System.out.println("Workshop Register: ERROR: closing DB connection: " + e);
}
}
}و هذا ال order table :
-- -- Create schema fashion -- CREATE DATABASE /*!32312 IF NOT EXISTS*/ fashion; USE fashion; -- -- Table structure for table `fashion`.`order` -- DROP TABLE IF EXISTS `order`; CREATE TABLE `order` ( `Order_ID` int(10) unsigned NOT NULL auto_increment, `Cust_ID` int(11) default NULL, `Pro_ID` int(11) default NULL, `Quantity` int(11) default NULL, `size` int(11) default NULL, `price` int(11) default NULL, `order_date` date default NULL, PRIMARY KEY (`Order_ID`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
وهذا الerror اللي يظهر في الNetBeans :
اقتباسERROR: Insert into DB: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'order values (1, 4, 700, 1, 3, '2011-05-20')' at line 1
ممكن حد يعطيني فكرة وين الغلط !! ؟