DB Feld in eine "if...else.." Anweisung einbinden
Tom Kruse
- asp.net
0 Stefan Falz
Liebes Forum,
nach Stunden des Probierens bin ich ein wenig am Ende. Ich möchte ein DB Field in eine "if..else.." Anweisung einbinden. Leider bekomme ich es nicht hin. Anbei erhaltet Ihr den Code, den ich benutze. Wenn ich ihn benutze, bekomme ich manchmal einen Syntaxfehler, wenn ich den Code ändere mal einen anderen Fehler. Ich habe schon mit (, <>, doppelten " hin und her gespielt. Leider ohne Erfolg.
Vielleicht hat einer (oder eine) von Euch eine zündende Idee..???
Einen lieben Gruß
Tom
<%
Set conn = Server.CreateObject("ADODB.Connection")
conn.open "Lundbeck News"
SQL = "SELECT * FROM News where Abteilung = 'IM' AND Freigabe = 1 AND Datum<= Date() Order by Datum DESC"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sql, conn, 3, 3
rs.MoveFirst
n=0
If rs.eof then
response.write "<i><font size=1>Sorry, zur Zeit sind keine Nachrichten vorhanden.</font></i>"
else
do while (Not rs.eof) AND (n<2)
%>
<%
if (rs.Fields("high")) = true then
response.write ""<br><%=rs.Fields("Datum")%>""
else
response.write "Das Feld ist false"
end if
%>
<%
On Error Resume Next
rs.MoveNext
n=n+1
loop
end if
%>
<%
Set conn = Server.CreateObject("ADODB.Connection")
conn.open "Lundbeck News"
SQL = "SELECT * FROM News where Abteilung = 'IM' AND Freigabe = 1 AND Datum<= Date() Order by Datum DESC"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sql, conn, 3, 3
rs.MoveFirst
n=0
If rs.eof then
response.write "<i><font size=1>Sorry, zur Zeit sind keine Nachrichten vorhanden.</font></i>"
else
do while (Not rs.eof) AND (n<2)
%>
<%
if (rs.Fields("high")) = true then
response.write ""
<%=rs.Fields("Datum")%>""
else
response.write "Das Feld ist false"
end if
%>
<%
On Error Resume Next
rs.MoveNext
n=n+1
loop
end if
%>
Hallo,
probier mal folgendes:
<%
Set conn = Server.CreateObject("ADODB.Connection")
conn.open "Lundbeck News"
SQL = "SELECT * FROM News where Abteilung = 'IM' AND Freigabe = 1 AND Datum<= Date() Order by Datum DESC"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sql, conn, 3, 3
rs.MoveFirst
n=0
If rs.eof then
response.write "<i><font size=1>Sorry, zur Zeit sind keine Nachrichten vorhanden.</font></i>"
else
do while (Not rs.eof) AND (n<2)
if rs.Fields("high") = true then
response.write rs.Fields("Datum")
else
response.write "Das Feld ist false"
end if
rs.MoveNext
n=n+1
loop
end if
%>
Tschau, Stefan
Hallo Stefan,
vielen Dank für Deine Hilfe. Dein Code funktioniert.
Allerdings habe ich einen Denkfehler gemacht. Um mein Problem zu lösen muß ich wohl etwas weiter ausholen.
Ich möchte eine unterschiedliche Anzeige, die von dem Inhalt "true" abhängt. D. h. ist der Wert des DB Feldes "true", soll die Anzeige z. B. fett dargestellt werden. Ist der Wert "false", soll die Anzeige "normal" sein.
Ich lasse mir nur die letzten beiden neuesten Einträge anzeigen. Nun kann es sein, daß einer von den Einträgen den Wert "true" hat und der andere Eintrag nicht. Jetzt soll der "true" Eintrag fett sein und der Andere "normal".
(Kurzform: Zeige mir die letzten beiden Einträge an. Hat einer davon den Wert "true", mache die Ausgabe fett. Hat einer davon den Wert "false", mache die Ausgabe normal.)
Anbei der ganze Code, wie ich es mir vorstelle (im Code ist der <font size="1"/"2"> der entscheidende Unterschied). Vielleicht gibt es ja noch eine andere Lösung, um die unterschiedliche Darstellung zu realisieren..?!?!?
<%
Set conn = Server.CreateObject("ADODB.Connection")
conn.open "Lundbeck News"
SQL = "SELECT * FROM News where Abteilung = 'IM' AND Freigabe = 1 AND Datum<= Date() Order by Datum DESC"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sql, conn, 3, 3
rs.MoveFirst
n=0
If rs.eof then
response.write "<i><font size=1>Sorry, zur Zeit sind keine Nachrichten vorhanden.</font></i>"
else
do while (Not rs.eof) AND (n<2)
if rs.Fields("high") = true then
response.write <font size="2"><%=rs.Fields("Datum")%><img border="0" src="../../Lu-D_1/images/Abstand_breite_10.JPG" width="10" height="5"><a href="display/display_news.asp?newsid=<%=rs.Fields("ID")%>"><%=rs.Fields("Ueberschrift")%></a></font><br>
else
response.write "<font size="1"><%=rs.Fields("Datum")%><img border="0" src="../../Lu-D_1/images/Abstand_breite_10.JPG" width="10" height="5"><a href="display/display_news.asp?newsid=<%=rs.Fields("ID")%>"><%=rs.Fields("Ueberschrift")%></a></font><br>
end if%>
<%
On Error Resume Next
rs.MoveNext
n=n+1
loop
end if
%>
Tom
Hm. Ich kann zwar so schnell das Probelm nicht finden (_Welchen_ Denkfehler hattest Du?), aber
ich würde hinter
If rs.eof then
response.write "<i><font size=1>Sorry, zur Zeit sind keine Nachrichten
vorhanden.</font></i>"
else
do while (Not rs.eof) and (n<2)
einfach ein n = n+1 setzen, dann die Überprüfung und Ausgabe vornehmen und dann mit MoveNext
fortfahren.
Welchen Sinn soll vor MoveNext "On Error ..." haben ? ? ? Mir ist während der letzten 8 Monaten bei 3
abzufragenden DBs kein Fall untergekommen, wo ein an einer solchen Stelle ein Fehler hätte auftreten
können...Oder hast Du einen solchen Fall schon erlebt (dann bitte mal an mich schicken - Danke!)?
Gruß
Thomas
If rs.eof then
response.write "<i><font size=1>Sorry, zur Zeit sind keine Nachrichten vorhanden.</font></i>"
else
do while (Not rs.eof) AND (n<2)
if rs.Fields("high") = true then
response.write <font size="2"><%=rs.Fields("Datum")%><img border="0" src="../../Lu-D_1/images/Abstand_breite_10.JPG" width="10" height="5"><a href="display/display_news.asp?newsid=<%=rs.Fields("ID")%>"><%=rs.Fields("Ueberschrift")%></a></font>else
response.write "<font size="1"><%=rs.Fields("Datum")%><img border="0" src="../../Lu-D_1/images/Abstand_breite_10.JPG" width="10" height="5"><a href="display/display_news.asp?newsid=<%=rs.Fields("ID")%>"><%=rs.Fields("Ueberschrift")%></a></font>end if%>
Hallo,
probier doch einfach mal das:
<%
If rs.eof then
response.write "<i><font size=1>Sorry, zur Zeit sind keine Nachrichten vorhanden.</font></i>"
else
do while (Not rs.eof) AND (n<2)
if rs.Fields("high") = true then
response.write "<font size=""2"">"
else
response.write "<font size=""1"">"
end if
Response.Write rs.Fields("Datum") & "<img border=""0"" src=""../../Lu-D_1/images/Abstand_breite_10.JPG"" width=""10"" height=""5""><a href=""display/display_news.asp?newsid=" & rs.Fields("ID") & """>" & rs.Fields("Ueberschrift") & "</a></font>"
end if
%>
Du musst natürlich deine Ausgaben mit Response.Write in ".." setzen und " als Ausgabe mit "" umsetzen.
Response.Write "Hallo"
Response.Write "Hallo ""Text"""
Response.Write rs.Fields("Text") & "Hallo"
Response.Write rs.Fields("Text") & "Hallo ""Text"""
Tschau, Stefan
Vielen Dank nocheimal Stefan,
nun fuktioniert es !!!!