webForumDet fria alternativet

If sträng är tom.

ASP

11 svar · 258 visningar · startad av Trumpf

Medlem sedan feb. 2004213 inlägg
Frågan#1

Hej!
Jag har följande kod:

<%Do While not rs.eof%>

<tr>
<td>
<Font color="red"><%=rs("nyheter_datum")%></font> <Font color="black">(<%=rs("klubb")%>)<br>

<Font color="black"><i><%=rs("nyheter")%></i>

</tr>
</td>

Nu vill jag inte visa denna om tabellen är tom. Hur gör jag då?
Hur ser IF satsen ut?

Tack på förhand!

Medlem sedan apr. 2004778 inlägg
#2

Vad menar du med "om tabellen är tom"?
Vilken tabell?
Om rs är tom så kommer du aldrig in i do-while loopen och då visas det inte.

Medlem sedan feb. 2004213 inlägg
#3

Jag har det så här:

<%
strSQL = "SELECT Top 5 * FROM members order BY nyheter_datum DESC"
Set rs = con.Execute(strSQL)
%>

<tr>
<td>
<Font color="black">
</tr>
</td>

<%Do While not rs.eof%>

<tr>
<td>
<Font color="red"><%=rs("nyheter_datum")%></font> <Font color="black">(<%=rs("klubb")%>)<br>

<Font color="black"><i><%=rs("nyheter")%></i>

</tr>
</td>

<%
rs.movenext
Loop
rs.Close
con.Close
Set con = Nothing
%>

Värdet är ej i fyllt i databasen. Den är alltså tom.
Är det fel på "members order BY nyheter_datum DESC" innan ?

Medlem sedan apr. 2004778 inlägg
#4

Menar du att din databastabell är tom eller får du inte ut några rader med din SELECT-sats?
Det finns inga fel i din select i alla fall.

Medlem sedan feb. 2004213 inlägg
#5

Jag har <%=rs("klubb")%> också. Den skriver han ut.
Men det vill jag inte. aha det är det jag menar!
Om <%=rs("nyheter")%> är tom så får han ej skriva ut <%=rs("klubb")%>.

Medlem sedan apr. 2004778 inlägg
#6
if not (rs("nyheter") = "" or rs("nyheter") = " " or IsNull(rs("nyheter")) ) then
Medlem sedan feb. 2004213 inlägg
#7

Förstår ej riktigt.

%Do While not rs.eof%>

<tr>
<td>

<Font color="red"><%=rs("nyheter_datum")%></font> <Font color="black">(<%=rs("klubb")%>)<br>

<Font color="black"><i><%=rs("nyheter")%></i>

</tr>
</td>

Var och hur lägger jag in det?
Ska jag ha <% runt if ? Får felmeddelande.

Medlem sedan nov. 20018 492 inlägg
#8
<%
strSQL = "SELECT Top 5 * FROM members order BY nyheter_datum DESC" 
Set rs = con.Execute(strSQL)
If NOT rs.EOF Then
%>

<tr>
<td>
<Font color="black">
</tr>
</td>

<%Do While not rs.eof%>

<tr>
<td>
<Font color="red"><%=rs("nyheter_datum")%></font> <Font color="black">(<%=rs("klubb")%> )<br>

<Font color="black"><i><%=rs("nyheter")%></i>

</tr>
</td>

<%
rs.movenext
Loop
End If
rs.Close : Set rs = Nothing
con.Close : Set con = Nothing
%>
Medlem sedan feb. 2004213 inlägg
#9

Han skriver ut (<%=rs("klubb")%>) i alla fall.

Medlem sedan apr. 2004778 inlägg
#10

Du ska lägga IF-frågan direkt efter do-while
End if lägger du direkt innan loop.

Medlem sedan feb. 2004213 inlägg
#11

Så här ?

<%Do While not rs.eof%>

<%
if not (rs("nyheter") = "" or rs("nyheter") = " " or IsNull(rs("nyheter")) ) then

<tr>
<td>

<Font color="red"><%=rs("nyheter_datum")%></font> <Font color="black">(<%=rs("klubb")%>)<br>

<Font color="black"><i><%=rs("nyheter")%></i>

</tr>
</td>

end if
%>

<%
rs.movenext
Loop
rs.Close
con.Close
Set con = Nothing
%>

Medlem sedan apr. 2004778 inlägg
#12

Har du provat det? För då hade du märkt att det inte fungerar.
Du måste stänga med %> efter if eftersom koden efter är HTML.

<%Do While not rs.eof%>
<%  if not (rs("nyheter") = "" or rs("nyheter") = " " or IsNull(rs("nyheter")) ) then
%>
          <tr>
            <td>
               <Font color="red"><%=rs("nyheter_datum")%></font> <Font color="black">(<%=rs("klubb")%> )<br>
               <i><%=rs("nyheter")%></i></font>
            </td>
          </tr>
<%
    end if
%>

<%
    rs.movenext
  Loop
  rs.Close
  con.Close
  Set con = Nothing
%>

Kolla även dina taggar i fortsättningen. I din kod hade du två font color="black" utan </font>
Du hade även /td och /tr i fel ordning.

263 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
129 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)