airwolfMedlem sedan okt. 2003132 inlägg Jag har följande kod på en sida för att se om det
finns nåt PM:
<%
'/Check for user message
Set Rs = Server.CreateObject("ADODB.Recordset")
SQL = "Select * From tbl_users WHERE folder='" & Session("folder") & "'"
Rs.Open SQL, Conn, 3,3
Do Until Rs.EOF
If Rs("message") <> "" Then
%>
<p>
<img src="img/inbox.gif"> <a href="inbox.asp">Du har ett nytt personligt meddelande</a>
<%
End If
Rs.MoveNext
Loop
Rs.Close
Set Rs = nothing
%>
Allt funkar i frid och fröjd så länge det finns ett meddelande.
Men finns inget meddelande får jag fel:
error '80020009'
Exception occurred.
/pictures.asp, line 19
Rad 19 är: If Rs("message") <> "" Then
Vad har jag missat?
mozillaMedlem sedan juli 20011 084 inlägg kanske för att RS är EOF men du försöker anropa den ändå? Lägg till en if(NOT rs.EOF) Then
(var ett tag sedan jag pillade med asp, kan hända att jag lagt argumenten fel :e)
UlfTMedlem sedan maj 20018 027 inlägg Det finns inget i Rs, eftersom det inte fanns några meddelanden. Pröva istället:
If Rs.EOF = false then
airwolfMedlem sedan okt. 2003132 inlägg Nu har jag
<%
'/Check for user message
Set Rs = Server.CreateObject("ADODB.Recordset")
SQL = "Select * From tbl_users WHERE folder='" & Session("folder") & "'"
Rs.Open SQL, Conn, 3,3
Do Until Rs.EOF
If Rs.EOF = false then
%>
<p>
<img src="img/inbox.gif"> <a href="inbox.asp">Du har ett nytt personligt meddelande</a>
<%
Else
End If
Rs.MoveNext
Loop
Rs.Close
Set Rs = nothing
%>
Men den skriver alltid ut Du har ett nytt personligt meddelande
Fast fältet är tomt, varför?!
N0M0NEYMedlem sedan juli 200543 inlägg 1. Prova istället för
If Rs.EOF = false then
Använd
If Not Rs.EOF then
2. Du behöver inte else i en if sats om du inte ska göra om villkoret är tvärtom..
du behöver också vända lite på koden, du kan få error annars:
If Not RS.Eof Then
Do Until Rs.EOF
%>
<p>
<img src="img/inbox.gif"> <a href="inbox.asp">Du har ett nytt personligt meddelande</a>
<%
Rs.MoveNext
Loop
End If
//red
och varför en loop?
If Not RS.Eof Then
%>
<p>
<img src="img/inbox.gif"> <a href="inbox.asp">Du har ett nytt personligt meddelande</a>
<%
End If
mozillaMedlem sedan juli 20011 084 inlägg
mozilla (kl 19:15) skrev:
kanske för att RS är EOF men du försöker anropa den ändå? Lägg till en if(NOT rs.EOF) Then
*host* :stud
Och som doggelito säger, du behöver ju ingen loop för att skriva ut ett meddelande.
airwolfMedlem sedan okt. 2003132 inlägg Då har jag bantat ner till
<%
'/Check for user message
Set Rs = Server.CreateObject("ADODB.Recordset")
SQL = "Select * From tbl_users WHERE folder='" & Session("folder") & "'"
Rs.Open SQL, Conn, 3,3
If Not RS.Eof Then
%>
<p>
<img src="img/inbox.gif"> <a href="inbox.asp">Du har ett nytt personligt meddelande</a>
<%
End If
Rs.Close
Set Rs = nothing
%>
Men fortfarande visas Du har ett nytt personligt meddelande fastän fältet message är tomt.....
emissionMedlem sedan dec. 19996 721 inlägg
airwolf skrev:
Men fortfarande visas Du har ett nytt personligt meddelande fastän fältet message är tomt.....
Det gör det eftersom du ingenstans kollar huruvida det är tomt eller inte.
SQL = "Select * From tbl_users WHERE folder='" & Session("folder") & "' AND Message<>''"
airwolfMedlem sedan okt. 2003132 inlägg tänk va lätt det är om man skriver korrekta databasfrågor :D
Tack!