'Är reciver av typen tal:
("SELECT tblUsers.username, tblUsers_imail.* FROM tblUsers, tblUsers_imail WHERE reciever="& Session("username"))
'Är reciver av typen text:
("SELECT tblUsers.username, tblUsers_imail.* FROM tblUsers, tblUsers_imail WHERE reciever='"& Session("username")&"'")
När jag nu loggar in med mottagaren så finns det 1 mail i databasen, men jag ser 5 likadana när jag kollar i "inboxen"
och när jag loggar in med en som INTE ska ha mail så får jag undantag inträffade.
Hela koden är
<%Set readmail=objConn.Execute("SELECT tblUsers.username, tblUsers_imail.* FROM tblUsers, tblUsers_imail WHERE reciever='"& Session("username")&"'")%>
<%
If Session("username") = readmail("reciever") Then
do until readmail.eof
%>
<a href="read.asp?userID=<%=readmail("userID")%>&headline=<%=readmail("headline")%>&message=<%=readmail("message")%>&datum=<%=readmail("datum")%>&sender=<%=readmail("sender")%>"><%=readmail("headline")%></a><br>
<%
readmail.MoveNext
Loop
%>
<%End If%>
Du använder två tabeller i din SELECT men har som jag skrev tidigare inte gjort någon koppling mellan dom. Du måste lägga till en JOIN ON eller en AND tblUsers.kolnamn = tblUsers_imail.kolnamn
Har en tabell tblUsers där all grundläggande info finns och tblUses_imail där alla fält för imailen finns. username i tabell 1 är i relation med reciever i tabell 2. Glömde kriva innan att nu får jag bara ett mail som det ska vara, men jag vet inte varför undantag inträffar när nån som inte har mail kollar i sin inbox
försökte lösa det med
<%Set readmail=objConn.Execute("SELECT tblUsers.username, tblUsers_imail.* FROM tblUsers INNER JOIN tblUsers_imail ON tblUsers.username = tblUsers_imail.reciever WHERE reciever='"& Session("username")&"'")%>
\<%
If Session("username") = readmail("reciever") Then
do until readmail.eof
%\>
\<a href="read.asp?userID=\<%=readmail("userID")%\>&headline=\<%=readmail("headline")%\>&message=\<%=readmail("message")%\>&datum=\<%=readmail("datum")%\>&sender=\<%=readmail("sender")%\>"\>\<%=readmail("headline")%\>\</a\>\<br\>
\<%
readmail.MoveNext
Loop
%\>
\<%ElseIf readmail("reciever") = "" Then%\>
Det finns inga mail i din inkorg :-(
\<%End If%\>
Med andra ord så försöker du kolla ett värde i readmail innan du kollar om den är EOF. Inte så konstigt att du får fel när det är tomt.
Du måste lägga den IF frågan innanför din EOF loop.
men om jag kollar först med
<%Set readmail=objConn.Execute("SELECT tblUsers.username, tblUsers_imail.* FROM tblUsers INNER JOIN tblUsers_imail ON tblUsers.username = tblUsers_imail.reciever WHERE reciever='"& Session("username")&"'")
If readmail("reciever") = "" Then%>
Det finns inga mail i din inkorg :-(
<%ElseIf Session("username") = readmail("reciever") Then
do until readmail.eof
%>
<a href="read.asp?userID=<%=readmail("userID")%>&headline=<%=readmail("headline")%>&message=<%=readmail("message")%>&datum=<%=readmail("datum")%>&sender=<%=readmail("sender")%>"><%=readmail("headline")%></a><br>
<%
readmail.MoveNext
Loop
%>
<%End If%>
så är det samma felmeddelande på samma ställe If readmail("reciever") = "" Then%>
Du kan inte göra kontroller mot readmail innan du kollat om det är EOF eller inte. Du gör fortfarande det på flera ställen
[B]If readmail("reciever") = "" Then%>[/B]
Det finns inga mail i din inkorg :-(
[B]<%ElseIf Session("username") = readmail("reciever") Then[/B]
do until readmail.eof
%>
<a href="read.asp?userID=<%=readmail("userID")%>&headline=<%=readmail("headline")%>&message=<%=readmail("message")%>&datum=<%=readmail("datum")%>&sender=<%=readmail("sender")%>"><%=readmail("headline")%></a><br>
<%
readmail.MoveNext
Loop
%>
<%End If%>
Har satt fet stil på de ställen du försöker kolla innan EOF kollen.
If readmail.EOF Then%>
Det finns inga mail i din inkorg :-(
<%ElseIf Session("username") = readmail("reciever") Then
do until readmail.eof
%>
<a href="read.asp?userID=<%=readmail("userID")%>&headline=<%=readmail("headline")%>&message=<%=readmail("message")%>&datum=<%=readmail("datum")%>&sender=<%=readmail("sender")%>"><%=readmail("headline")%></a><br>
<%
readmail.MoveNext
Loop
%>
<%End If%>