webForumDet fria alternativet

join problem

18 svar · 357 visningar · startad av WebbisNet

WebbisNetMedlem sedan feb. 20032 027 inlägg
#1

kan nån hitta felet efter wheresatsen?

("SELECT tblUsers.username, tblUsers_imail.* FROM tblUsers, tblUsers_imail WHERE reciever= Session("username")")
Jesper TMedlem sedan nov. 20017 144 inlägg
#2
'Ä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")&"'")
PDahlenMedlem sedan apr. 2004778 inlägg
#3

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?

WebbisNetMedlem sedan feb. 20032 027 inlägg
#4

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%>
PDahlenMedlem sedan apr. 2004778 inlägg
#5

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

WebbisNetMedlem sedan feb. 20032 027 inlägg
#6

Exakt samma problem med
SELECT tblUsers.username, tblUsers.username, tblUsers_imail.* FROM tblUsers, tblUsers_imail

WebbisNetMedlem sedan feb. 20032 027 inlägg
#7

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

PDahlenMedlem sedan apr. 2004778 inlägg
#8

Hur ser tabellerna ut?

WebbisNetMedlem sedan feb. 20032 027 inlägg
#9

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

PDahlenMedlem sedan apr. 2004778 inlägg
#10

Det undantaget kommer säkerligen av att du inte har någon koll för när resultatet är tomt.

WebbisNetMedlem sedan feb. 20032 027 inlägg
#11

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

PDahlenMedlem sedan apr. 2004778 inlägg
#12

På vilken rad får du undantaget?

WebbisNetMedlem sedan feb. 20032 027 inlägg
#13

på raden If Session("username") = readmail("reciever") Then

PDahlenMedlem sedan apr. 2004778 inlägg
#14

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.

WebbisNetMedlem sedan feb. 20032 027 inlägg
#15

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%>

PDahlenMedlem sedan apr. 2004778 inlägg
#16

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.

WebbisNetMedlem sedan feb. 20032 027 inlägg
#17

Nåt bra förslag, börjar bli seg i skallen :-D

PDahlenMedlem sedan apr. 2004778 inlägg
#18
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%>
WebbisNetMedlem sedan feb. 20032 027 inlägg
#19

Nu funkar allt, tack så jättemycket för all hjälp och för att du stod ut med min okunnighet :-)

265 ms totalt · 3 externa anrop · v20260731065814-full.30151723
134 ms — hämta forumlista (db)
126 ms — hämta statistik (db)
134 ms — hämta tråd, inlägg och bilagor (db)