13. juli 2002 - 23:35
Der er
4 kommentarer og 1 løsning
form til søgning i database
Hvordan "submitter" man en form's værdier, så den tager værdierne fra de enkelte tekstboxe, og kan bruge dem som wildcard ved en søgning i en database? Jeg havde tænkt mig at sætte værdierne først, etablere forbindelse med databasen, og derefter søge efter de to wildcards. Eksempel: side med form'en: <html> <%@ page language="java" import="java.sql.*" %> <head> <title>Untitled</title> </head> <body> <table><tr><td> søg efter navn<br> <table><tr><td><form action="search.jsp" method="post"> <input type="text" name="navn" id="navn" value=""> <input type="submit" name="submit" id="submit" value="submit"> </form></td></tr></table> </td> <td> </td> </td></tr></table> </body> </html> side med databasenforbindelsen: <BODY> <% String navn = request.getParameter("navn"); //her starter kaldet til databasen Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection myConn = DriverManager.getConnection("Jdbc:Odbc:dennis","",""); Statement stmt = myConn.createStatement(); ResultSet myResultSet = stmt.executeQuery("select * from oplysninger where navn like '%navn%'"); if(myResultSet !=null) { while(myResultSet.next()) { ....---> osv. resten er ikke vigtig, skriver kun data fra databasen til tabel.
Annonceindlæg fra Thinkwise
Lukket, med komplimenter til de deltagende... ;)
Ok, jeg har faktisk selv lavet søgningen komplet og det virker, men når jeg prøver at implementer Disky's DbHandler går det galt, hvor jeg får en fejl, med status: jeg skal huske at slutte <jsp:useBean>, men hvor, ved jeg ikke, nogen??? Min søgning ser således ud: <%@page language="java" import="java.sql.*,java.util.*, disky.*" session="true" isErrorPage="false" %> <jsp:useBean id="db" class="DbHandler" scope="session"/> </jsp:useBean> <HTML> <HEAD> <TITLE>list alt i databasen</TITLE> </HEAD> <link rel="stylesheet" href="css.css" type="text/css"> <BODY> <% String name = request.getParameter("name"); String color = request.getParameter("color"); ResultSet myResultSet = db.doQuery("select * from oplysninger where navn = '" + name + "' AND farve = '" + color + "'"); if(myResultSet !=null) { while(myResultSet.next()) { String incassonummer = myResultSet.getString("incassonummer"); String start = myResultSet.getString("start"); String afsluttet = myResultSet.getString("afsluttet"); String faktura = myResultSet.getString("faktura"); String kunde = myResultSet.getString("kunde"); String registreringsnummer = myResultSet.getString("registreringsnummer"); String maerke = myResultSet.getString("maerke"); String farve = myResultSet.getString("farve"); String aargang = myResultSet.getString("aargang"); String navn = myResultSet.getString("navn"); String personnummer = myResultSet.getString("personnummer"); String adresse = myResultSet.getString("adresse"); String telefonnummer = myResultSet.getString("telefonnummer"); String restance = myResultSet.getString("restance"); String forsikring = myResultSet.getString("forsikring"); %> <!-- tabel --> <table border="1" width="80%" align="center"> <tr><td> <!-- tabel --> <table border="1"> <tr> <td width="10%" align="left">incassonummer</td><br> <td width="10%" align="left">start</td> <td width="10%" align="left">afsluttet</td> <td width="10%" align="left">faktura</td> <td width="10%" align="left">kunde</td><br> </tr> <tr> <td width="10%" align="left"> <%= kunde %> </td> <td width="10%" align="left"><%= incassonummer %></td> <td width="10%" align="left"><%= start %></td> <td width="10%" align="left"><%= afsluttet %> </td> <td width="10%" align="left"><%= faktura %></td> </tr> </table> <!-- tabel --> <table border="1"> <tr> <td width="10%" align="left">Registreringsnummer</td><br> <td width="10%" align="left">Mærke</td> <td width="10%" align="left">Farve</td> <td width="10%" align="left">Årgang</td> </tr> <tr> <td width="10%" align="left"> <%= registreringsnummer %> </td> <td width="10%" align="left"><%= maerke %></td> <td width="10%" align="left"><%= farve %></td> <td width="10%" align="left"><%= aargang %> </td> </tr> </table> <!-- tabel --> <table border="1"> <tr> <td width="10%" align="left">Navn</td><br> <td width="10%" align="left">Personnummer</td> </tr> <tr> <td width="10%" align="left"> <%= navn %> </td> <td width="10%" align="left"><%= personnummer %></td> </tr> </table> <!-- tabel --> <table border="1"> <tr> <td width="10%" align="left">Adresse</td><br> </tr> <tr> <td width="10%" align="left"> <%= adresse %> </td> </tr> </table> <!-- tabel --> <table border="1"> <tr> <td width="10%" align="left">Telefonnummer</td><br> <td width="10%" align="left">Restance</td> <td width="10%" align="left">forsikring</td> </tr> <tr> <td width="10%" align="left"> <%= telefonnummer %> </td> <td width="10%" align="left"><%= restance %></td> <td width="10%" align="left"><%= forsikring %></td> </tr> </table> </td></tr> <!--slut hele tabel --> </table> <br><br> <hr width="100%" size="2"> <% } } /*stmt.close(); myConn.close(); */ %> </table> </BODY> </HTML>
Ok, nu har jeg fået lukket min useBean, men jeg får ikke liste data fra databasen???
Fandt selv ud af det. Her er et eksempel: <%@page language="java" import="java.sql.*,java.util.*, disky.*" session="true" isErrorPage="false" %> <jsp:useBean id="db" class="disky.DbHandler" scope="session"/> <HTML> <HEAD> <TITLE>guestbookinfo.jsp</TITLE> </HEAD> <BODY> <% String formadr = request.getParameter("formadr"); db.open("sun.jdbc.odbc.JdbcOdbcDriver","jdbc:odbc:dennis","",""); ResultSet myResultSet = db.doQuery("SELECT * FROM oplysninger WHERE adresse = '" + formadr + "'"); if(myResultSet !=null) { while(myResultSet.next()) { String kunde = myResultSet.getString("kunde"); String incassonummer = myResultSet.getString("incassonummer"); String start = myResultSet.getString("start"); String afsluttet = myResultSet.getString("afsluttet"); String faktura = myResultSet.getString("faktura"); String registreringsnummer = myResultSet.getString("registreringsnummer"); String maerke = myResultSet.getString("maerke"); String farve = myResultSet.getString("farve"); String aargang = myResultSet.getString("aargang"); String navn = myResultSet.getString("navn"); String personnummer = myResultSet.getString("personnummer"); String adresse = myResultSet.getString("adresse"); String telefonnummer = myResultSet.getString("telefonnummer"); String restance = myResultSet.getString("restance"); String forsikring = myResultSet.getString("forsikring"); %> <table border="1"> <td width="10%" align="left"> <%= kunde %> </td> <td width="10%" align="left"><%= incassonummer %></td> <td width="10%" align="left"><%= start %></td> <td width="10%" align="left"><%= afsluttet %> </td> <td width="10%" align="left"><%= faktura %></td> </tr> </table> <table border="1"> <tr> <td width="10%" align="left">Registreringsnummer</td><br> <td width="10%" align="left">Mærke</td> <td width="10%" align="left">Farve</td> <td width="10%" align="left">Årgang</td> </tr> <tr> <td width="10%" align="left"> <%= registreringsnummer %> </td> <td width="10%" align="left"><%= maerke %></td> <td width="10%" align="left"><%= farve %></td> <td width="10%" align="left"><%= aargang %> </td> </tr> </table> <table border="1"> <tr> <td width="10%" align="left">Navn</td><br> <td width="10%" align="left">Personnummer</td> </tr> <tr> <td width="10%" align="left"> <%= navn %> </td> <td width="10%" align="left"><%= personnummer %></td> </tr> </table> <table border="1"> <tr> <td width="10%" align="left">Adresse</td><br> </tr> <tr> <td width="10%" align="left"> <%= adresse %> </td> </tr> </table> <table border="1"> <tr> <td width="10%" align="left">Telefonnummer</td><br> <td width="10%" align="left">Restance</td> <td width="10%" align="left">forsikring</td> </tr> <tr> <td width="10%" align="left"> <%= telefonnummer %> </td> <td width="10%" align="left"><%= restance %></td> <td width="10%" align="left"><%= forsikring %></td> </tr> </td></tr> </table> </table> <br><br> <hr width="100%" size="2"> <% }db.close(); } out.print(formadr); %> </BODY> </HTML>
Kurser inden for grundlæggende programmering