kan nån hitta felet efter wheresatsen?
("SELECT tblUsers.username, tblUsers_imail.* FROM tblUsers, tblUsers_imail WHERE reciever= Session("username")")
18 svar · 357 visningar · startad av WebbisNet
kan nån hitta felet efter wheresatsen?
("SELECT tblUsers.username, tblUsers_imail.* FROM tblUsers, tblUsers_imail WHERE reciever= Session("username")")
'Ä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")&"'")
Du måste ha en koppling mellan tblUsers och tblUsers_imail i din SELECT. Lägg till en JOIN.
Får du nåt felmeddelande? I så fall vad?
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
Exakt samma problem med
SELECT tblUsers.username, tblUsers.username, tblUsers_imail.* FROM tblUsers, tblUsers_imail
skrev fel, förlåt
det blir samma med SELECT tblUsers.username, tblUsers_imail.* FROM tblUsers INNER JOIN tblUsers_imail ON tblUsers.username = tblUsers_imail.reciever
Hur ser tabellerna ut?
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
Det undantaget kommer säkerligen av att du inte har någon koll för när resultatet är tomt.
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%\>
men det är fortfarande undantag som inträffar
På vilken rad får du undantaget?
på raden If Session("username") = readmail("reciever") Then
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.
Nåt bra förslag, börjar bli seg i skallen :-D
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%>
Nu funkar allt, tack så jättemycket för all hjälp och för att du stod ut med min okunnighet :-)