kalder forkerte dato fra javascript i MySQL database
HejsaJeg er lidt usikker på om det er i min servlet eller mit javascript den er gal med. Men har en fornemmelse af det er javascriptet? Istedet for at skrive en vild lang tekst, så har jeg lige lavet en kort video ift hvad mit problem er:
https://www.youtube.com/watch?v=maXwOJRWf28&feature=youtu.be
Jeg vælger først fra d.2014-03-03 - 2014-03-04. I min servlet lægges Day_hours og Day_minutes sammen, hvor resultatet er 15.2 timer. Det er også korrekt. Der hvor problemet så er, er at når jeg vælger fx d.2014-03-23 - 2014-03-28 får jeg også udskrevet 15.2 timer, selvom der ikke er noget i databasen i dette interval. Det vil egentligt sige at den kører alle columns igennem istedet for at køre det specifikke datainterval igennem. Derfor tror jeg det er noget i mit javascript, som ikke er korrekt. Men jeg må være ærlig at sige at jeg aner ikke hvor jeg skal starte med at kigge?
For god ordensskyld har jeg også lige ligget min servlet kode.
Håber der er nogle som kan hjælpe mig?
Med Venlig Hilsen
Mads
Javascript kode:
<form>
<input id="startDate" />
<input id="endDate" />
</form>
<div id="startresult"></div>
<div id="endresult"></div>
<script>
$(function(){
$("#startDate").datepicker({
dateFormat: 'yy-mm-dd',
onSelect: function(dateText,inst){
alert(dateText);
$.ajax({
url: "../getHoursSQL",
type: "post",
data: JSON,
success: function(data){
alert("success");
$("#startresult").html(data);
},
error:function(){
alert("failure");
$("#startresult").html('there is error while submit');
}
});
}
});
});
$(function(){
$("#endDate").datepicker({
dateFormat: 'yy-mm-dd',
onSelect: function(dateText,inst){
alert(dateText);
$.ajax({
url: "../getHoursSQL",
type: "post",
data: JSON,
success: function(data){
alert("success");
$("#endresult").html(data);
},
error:function(){
alert("failure");
$("#endresult").html('there is error while submit');
}
});
}
});
});
</script>
Servlet kode:
package WorkPackage;
import java.io.*;
import java.sql.*;
import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;
@WebServlet("/getHoursSQL")
public class getHoursSQL extends HttpServlet{
private static final long serialVersionUID = 1L;
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
public void doPost(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException{
String connectionURL = "jdbc:mysql://localhost/NekiWork";
Connection connection=null;
try {
Class.forName("com.mysql.jdbc.Driver");
connection = DriverManager.getConnection(connectionURL, "root", "");
String sql = "SELECT *, (Day_hours + (Day_minutes / 100)) AS Allday_hours FROM Workdata";
PreparedStatement pst = connection.prepareStatement(sql);
ResultSet rs = pst.executeQuery(sql);
float Allday_hours_sum = 0;
while (rs.next()){
Allday_hours_sum += Float.parseFloat (rs.getString("Allday_hours"));
}
res.setContentType("text/html;charset=UTF-8");
res.getWriter().print(Allday_hours_sum);
pst.close();
}
catch(ClassNotFoundException e){
System.out.println("Couldn't load database driver: " + e.getMessage());
}
catch(SQLException e){
System.out.println("SQLException caught: " + e.getMessage());
}
catch (Exception e){
System.out.println(e);
}
finally {
try {
if (connection != null) connection.close();
}
catch (SQLException ignored){
System.out.println(ignored);
}
}
}
}