0

Hello I am writing a code where people can search activities from database by using jsp. When I execute the program, I can search according to type,description,location,city successfully. I can see datas on page. But when I select date option like tomorrow or etc it returns empty table. Where is the problem in my code ? What will be the correct code ? (PS all attributes are varchar except id)enter image description here

enter image description here

If I fill type as 'Music' I am etting this table enter image description here search.jsp

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@ page import ="java.sql.*" %>




<!DOCTYPE html>
<html>
<body background="http://www.teamarking.com/barcode/bar_background.jpg"> 
    <form method="post" action="reservations.jsp">

        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Book Ticket</title>
    </head>

    <center>    
        <table border="1" width="30%" height="30%">
            <th><font color='#D18603'>id</font>
            <th><font color='#D18603'>Type</font></th>
            <th><font color='#D18603'>Description</font></th>
            <th><font color='#D18603'>City</font></th>
            <th><font color='#D18603'>Location</font></th>
            <th><font color='#D18603'>Date</font></th>
            <th><font color='#D18603'>Price</font></th>
            <th><font color='#D18603'>Buy</font>





                <%
                    Class.forName("org.apache.derby.jdbc.ClientDriver").newInstance();
                    Connection con = DriverManager.getConnection("jdbc:derby://localhost:1527/users", "users", "123");

                    Statement st = con.createStatement();
                    ResultSet rs;

                    PreparedStatement ps = con.prepareStatement("select * from activities where type=? OR description=? OR city=? OR  location=? OR date=? OR time=?");
                    ps.setString(1, request.getParameter("type"));
                    ps.setString(2, request.getParameter("description"));
                    ps.setString(3, request.getParameter("city"));
                    ps.setString(4, request.getParameter("location"));
                    ps.setString(5, request.getParameter("date"));
                    ps.setString(6, request.getParameter("time"));

                    rs = ps.executeQuery();
                    while (rs.next()) {

                        out.println("<tr>");
                        out.println("<form action='reservations.jsp'>");
                        out.println("<td>" + rs.getString("id") + "<input type='hidden' name='id' value='" + rs.getString("id") + "'></td>");
                        out.println("<td>" + rs.getString("type") + "<input type='hidden' name='type' value='" + rs.getString("type") + "'></td>");
                        out.println("<td>" + rs.getString("description") + "<input type='hidden' name='description' value='" + rs.getString("description") + "'></td>");
                        out.println("<td>" + rs.getString("city") + "<input type='hidden' name='city' value='" + rs.getString("city") + "'></td>");
                        out.println("<td>" + rs.getString("location") + "<input type='hidden' name='location' value='" + rs.getString("location") + "'></td>");
                        out.println("<td>" + rs.getString("date") + "<input type='hidden' name='date' value='" + rs.getString("date") + "'></td>");
                        out.println("<td>" + rs.getString("price") + "<input type='hidden' name='price' value='" + rs.getString("price") + "'></td>");
                        out.println("<td>" + rs.getString("time") + "<input type='hidden' name='time' value='" + rs.getString("time") + "'></td>");


                        out.println("<td><b><form action='reservations.jsp'><select name='buy'><option value='1'>1</option><option value='2'>2</option><option value='3'>3</option><option value='4'>4</option><option value='5'>5</option></select><input type='submit' value='Submit'></form></b>");

                        out.println("</tr>");

                    }
                    st.close();

                %>


                </center>
        </table>

        <br>  <br><a href='success.jsp'>Back</a>
        <br><br><a href='logout.jsp'>Log out</a>
</form>
</body> 
</html>

success.jsp

<%-- 
Document   : success
Created on : 19.Ara.2016, 12:41:49
Author     : BURAK NURÇİÇEK
--%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<body background="http://www.teamarking.com/barcode/bar_background.jpg"> 

<marquee><h2 style="color:RED">WELCOME TO ONLINE RESERVATION SYSTEM   </marquee></h2>

 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>JSP Page</title>

 </head>
<form method = "get" action = "search.jsp">
<table align="right">
    <tr><td><b><font color='#D18603'>Type :</b></td><td><input type="text" name="type" /></td></tr>
    <tr><td><b><font color='#D18603'>Description :</b></td><td><input type="text" name="description" /></td></tr>
    <tr><td><b><font color='#D18603'>City :</b></td><td><input type="text" name="city" /></td></tr>
    <tr><td><b><font color='#D18603'>Location :</b></td><td><input type="text" name="location" /></td></tr>
    <tr><td><b><font color='#D18603'>Date(YYYY-MM-DD) :</b></td><td><select name='time'><option value='1'>Today</option><option value='2'>Tomorrow</option><option value='3'>This Week</option><option value='4'>This Weekend</option><option value='5'>Next Week</option><option value='6'>Next Weekend</option></option></select></b>;
    <tr><td colspan="2" align="center"><input type="submit" value="search" /> <input type="reset" value="reset" /></td></tr></td></tr>
    <%
        String x = (String) application.getAttribute("id");
    //out.println(x);
    %>

</table>

</div>
</body>
</html>
tripley
  • 79
  • 1
  • 12

3 Answers3

0

just change your values of option tags : from 1 to Today and 2 to Tomorrow. ...

0

Here is your select

<select name='time'>
    <option value='1'>Today</option>
    <option value='2'>Tomorrow</option>
    <option value='3'>This Week</option>
    <option value='4'>This Weekend</option>
    <option value='5'>Next Week</option>
    <option value='6'>Next Weekend</option>
    </option>
</select>

In the JSP, your receive the value. Not a date but a numeric value (in a String).

You should evaluate the date you want based on this numeric value. Using a switch and Calendar to add the value to the current date. But you also have ranges of dates here with Week-end or Week.

Plus, I see date and time in your query, but only time in the form. You should check those.

AxelH
  • 14,325
  • 2
  • 25
  • 55
  • PS : I didn't mention the possibility to update the value because Assen wrote it in the same time. This is true too. – AxelH Jan 02 '17 at 12:03
0

If you use option like this it will work:

<select name='time'>
    <option value='2017-01-02'>Today</option>
    <option value='2017-01-03'>Tommorow</option>
    </option>
</select>
AssenKhan
  • 576
  • 5
  • 15