SQL
Desværre er der jo ingen kategorier for sql, så jeg forsøger mig her, da min side er lavet i jsp.Jeg har denne side, hvor jeg skal finde oplysninger til et bestemt objekt fra min tabel:
<HTML>
<HEAD>
<TITLE>Bud</TITLE>
</HEAD>
<BODY>
<%
String DSNname = \"projektdatabase\";
String username = \"\";
String password = \"\";
Class.forName(\"sun.jdbc.odbc.JdbcOdbcDriver\");
java.sql.Connection connection = java.sql.DriverManager.getConnection(\"jdbc:odbc:\" + DSNname,username,password);
java.sql.Statement statement = connection.createStatement();
String effektnummerValue = request.getParameter(\"effektnummer\");
%>
HER:<%=effektnummerValue%>
<%
// TEMP TEMP SKAL SLETTES!!!!
//effektnummerValue = \"1\";
String sql = \"SELECT TOP 1 b.bud,s.varebetegnelse, s.budinterval,s.varebeskrivelse,s.slut \";
sql = sql + \"FROM Bud b, Salg s \";
sql = sql + \"WHERE b.effektnummer = s.effektnummer \";
sql = sql + \"AND b.effektnummer = \" + effektnummerValue;
sql = sql + \" ORDER BY timestamp DESC\";
//String sql = \"SELECT * FROM salg WHERE effektnummer = \" + effektnummerValue;
java.sql.ResultSet columns = statement.executeQuery(sql);
int bud = 0;
String varebetegnelse = \"\";
int budinterval = 0;
String varebeskrivelse = \"\";
String slut = \"\";
while(columns.next()) {
varebeskrivelse = columns.getString(\"varebeskrivelse\");
bud = columns.getInt(\"bud\");
budinterval = columns.getInt(\"budinterval\");
slut = columns.getString(\"slut\");
varebetegnelse = columns.getString(\"varebetegnelse\");
}
%>
<HR>
<TABLE BORDER=1>
<TR>
<TD WIDTH=\"200\">Her skal der vises et billede, hvis det findes!!!</TD>
<TD WIDTH=\"200\">Beskrivelse:<BR><%=varebeskrivelse%></TD>
</TR>
</TABLE>
<BR><BR><BR><BR>
<FORM ACTION=\"bud.jsp\" METHOD=POST>
<TABLE BORDER=0>
<TR>
<TD valign=\"top\"><B>Varenavn:</B>:</TD>
<TD valign=\"top\">
<INPUT TYPE=\"text\" NAME=\"varenavn\" SIZE=15 MAXLENGTH=15 VALUE=<%=varebetegnelse%>>
</TD>
</TR>
<TR>
<TD valign=\"top\"><B>Mit bud:</B>:</TD>
<TD valign=\"top\">
<INPUT TYPE=\"text\" NAME=\"startpris\" SIZE=15 MAXLENGTH=15 VALUE=<%=budinterval + bud%>>
</TD>
</TR>
<TR>
<TD valign=\"top\"><B>Mindste interval:</B></TD>
<TD valign=\"top\">
<INPUT TYPE=\"text\" NAME=\"interval\" SIZE=5 MAXLENGTH=5 VALUE=<%=budinterval%>>
</TD>
</TR>
<TR>
<TD valign=\"top\"><B>Auktion slut:</B></TD>
<TD valign=\"top\">
<INPUT TYPE=\"text\" NAME=\"auktionslut\" SIZE=15 MAXLENGTH=15 VALUE=<%=slut%>>
</TD>
</TR>
<TR>
<TD valign=\"top\"> <B>Medlems-ID:</B> </TD>
<TD valign=\"top\"><INPUT TYPE=\"text\" NAME=\"medlemsid\" MAXLENGTH=15><BR>
</TD>
</TR>
<TD valign=\"top\"> <B>Password:</B> </TD>
<TD valign=\"top\"><INPUT TYPE=\"text\" NAME=\"password\" MAXLENGTH=15><BR>
</TD>
</TR>
<TR>
<TD valign=\"top\"> <B>Mail ved overbud</B> </TD>
<TD valign=\"top\"><INPUT TYPE=\"checkbox\" NAME=\"mail\" VALUE=\"Mail ved overbud\"><BR>
</TD>
</TR>
</TD>
</TABLE>
<BR><BR>
<INPUT TYPE=\"submit\" VALUE=\"Byd\">
<%
sql = \"SELECT b.timestamp,b.bud,k.kontaktperson, k.kontaktpersonefternavn, s.pris \";
sql = sql + \"FROM Bud b, Salg s, Kunder k \";
sql = sql + \"WHERE k.kunderID = b.kunderID \";
sql = sql + \"AND b.effektnummer = s.effektnummer \";
sql = sql + \"AND b.effektnummer = \" + effektnummerValue;
sql = sql + \" ORDER BY timestamp DESC\";
%>
<TABLE BORDER=0>
<TR>
<TD valign=\"top\"><B>Dato</B>:</TD>
<TD valign=\"top\"><B>Bud</B>:</TD>
<TD valign=\"top\"><B>Navn</B>:</TD>
</TR>
<%
columns = statement.executeQuery(sql);
String startpris = \"\";
while(columns.next()) {
startpris = columns.getString(\"pris\");
%>
<TR>
<TD valign=\"top\"><%=columns.getString(\"timestamp\")%></TD>
<TD valign=\"top\"><%=columns.getString(\"bud\")%></TD>
<TD valign=\"top\"><%=columns.getString(\"kontaktperson\") + \" \" + columns.getString(\"kontaktpersonefternavn\")%></TD>
</TR>
<%
}
%>
</TABLE>
Startpris: <%=startpris%>
</BODY>
</HTML>
Mine tabeller ser ud som følger:
tabelnavn: Salg
Effektnummer (primærnøgle): autonummerering
Omraade: tekst
Varebetegnelse: tekst
Pris: tal
Budinterval: tal
Varebeskrivelse: notat
Slut: dato og klokkeslæt
tabelnavn: Bud
Budnummer (primærnøgle): autonummerering
Det drejer sig om en auktionsside, hvor jeg vil have oplysninger om min vare. SQL-sætningen virker kun, hvis der allerede er afgivet et bud på varen, men det kan jeg jo ikke forudsætte. Hvordan skal jeg skrive den, så den også tager højde for at der ikke er afgivet bud endnu???
Effektnummer: tal
Timestamp: dato og klokkeslæt
Bud: tekst
