har kollat och dubbelkollad, men kan inte hitta felet i denna:
Set Rs = Server.CreateObject("ADODB.Recordset")
Rs.Open "SELECT * FROM shOrders, shCustomers WHERE shOrders.customer=shCustomers.id AND shOrders.id=" & Request("id"), Conn, 1,1
if not rs.eof then
[B]shBasket = Rs.Fields("shBasket").Value[/B]
address = Rs.Fields("address").Value
postalcode = Rs.Fields("postalcode").Value
city = Rs.Fields("city").Value
email = Rs.Fields("email").Value
phone = Rs.Fields("phone").Value
name = Rs.Fields("fname").Value & " " & Rs.Fields("lname").Value
else
response.end
end if
Rs.Close
..får detta felmeddelande:
Error Type:
ADODB.Recordset (0x800A0CC1)
Item cannot be found in the collection corresponding to the requested name or ordinal.
/gamol/html/shViewOrder.asp, line 19
Välj query/frågor i menyn under tabellerna, sedan väljer du tabell, och fält. Knappen uppe till vänster kör frågan, visar sql.
Men, mitt tips är att ta bort den raden (är det 19 eftersom den är fet), och se om det övriga fungerar. Dvs eftersom du inte skriver något alls om det antar jag att du inte får ut något ur db'n alls?
Varför har du response.end i din if-sats? Om nu recordset:et är tomt kommer inte rs.close eller eventuella andra förstörelserelaterade ( ) händelser att inträffa eftersom koden aldrig kommer dit.
har ändrad response.end till response.write "inga varor här" och noterar att felet nu anges i linjen
address = Rs.Fields("address").Value
..och som vanligt förstår jag NADA
Hela filen här:
<% Option Explicit ' Vi vill ha koll på våra variabler
%><!--#include file="prevent_cache.asp"--><!--#include file="connection.asp"--><!--#include file="functions.asp"--><%
Dim numRecords, v
Dim shBasket, TotalPrice, Details
Dim email, BackgroundColor, address, phone, city, postalcode, name
IF Session("shCustomerID") = "" THEN
Response.Redirect "shCustomerLogin.asp": response.end
end if
Set Rs = Server.CreateObject("ADODB.Recordset")
Rs.Open "SELECT * FROM shOrders, shCustomers WHERE shOrders.customer=shCustomers.id AND shOrders.id="& Request("id"), Conn, 1,1
if not rs.eof then
shBasket = Rs.Fields("shBasket").Value
address = Rs.Fields("address").Value
postalcode = Rs.Fields("postalcode").Value
city = Rs.Fields("city").Value
email = Rs.Fields("email").Value
phone = Rs.Fields("phone").Value
name = Rs.Fields("fname").Value & " " & Rs.Fields("lname").Value
else
response.write "inga varor här"
end if
Rs.Close
Dim a, itemsInBasket, One
' Vi hämtar ut alla varors ID-nummer till en kommaseparerad sträng
IF shBasket<>"" THEN
a = Split(shBasket, "|")
For Each One in a
If itemsInBasket <> "" THEN itemsInBasket = itemsInBasket & ","
itemsInBasket = itemsInBasket & Mid(one, 2, InStr(one, "]")-2)
next
End If
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Beställning</title>
<link rel="STYLESHEET" type="text/css" href="shStyle.css">
</head>
<body BGCOLOR="#FFFFFF">
<P><FONT SIZE="3"><B>Din beställning är skickad!</B></FONT></p>
Skriv ut den här sidan och spara den.<br>
Du kommer även att få en bekräftelse via e-post<br><br>
<B>Datum:</B><br>
<%= Year(Now) & "-" & AddZero(Month(Now)) & "-" & AddZero(Day( Now)) & " " & Time %><br><br>
<TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0>
<TR>
<TD CLASS="reciept" VALIGN="TOP" WIDTH="150">
<B>Namn:</B><br>
<%=name%><br>
<B>Adress:</B><br>
<%=address%><br>
<%=postalcode%> <%=city%><br>
</TD>
<TD CLASS="reciept" VALIGN="TOP" WIDTH="160">
<B>E-post:</B><br>
<%=email%><br>
<B>Telefon:</B><br>
<%=phone%><br>
</TD>
</TABLE>
<br>
<TABLE WI DTH="400" BORDER=0 CELLSPACING=1 CELLPADDING=0>
<TR BGCOLOR="<%=BackgroundColor%>">
<TD WIDTH=20 CLASS="reciept">#</TD>
<TD WIDTH=170 CLASS="reciept"><B>Vara</B></TD>
<TD WIDTH=60 CLASS="reciept" ALIGN=RIGHT><B>á pris</B></TD>
<TD WIDTH=60 CLASS="reciept" ALIGN=RIGHT><B>Summa</B></TD>
</TR>
<%
Set Rs = Server.CreateObject("ADODB.RecordSet")
Rs.Open "SELECT * FROM shItems WHERE id IN (" & itemsInBasket & ")",Conn,1,1
Dim noItems
if not rs.eof then
numRecords = Rs.RecordCount-1
BackgroundColor = "#EEEEEE"
for v= 0 to numRecords
noItems = itemCount( Rs.Fields("id").Value, False)
If BackgroundColor = "#EEEEEE" THEN BackgroundColor ="#FFFFFF" Else BackgroundColor = "#EEEEEE"
%>
<TR BGCOLOR="<%=BackgroundColor%>">
<TD WIDTH=20 CLASS="reciept"><%=noItems%></TD>
<TD WIDTH=170 CLASS="reciept"><%=Rs.Fields("title").Value%></TD>
<TD WIDTH=60 CLASS="reciept" ALIGN=RIGHT><%=Rs.Fields("price").Value%></TD>
<TD WIDTH=60 CLASS="reciept" ALIGN=RIGHT><%=Rs.Fields("price").Value * noItems%></TD>
</TR>
<%
TotalPrice = TotalPrice + itemCount( Rs.Fields("id").Value, False) * Rs.Fields("price").Value
Rs.MoveNext
next
%>
<TR BGCOLOR="<%=BackgroundColor%>">
<TD COLSPAN="4" WIDTH=310 CLASS="reciept" HEIGHT="1" BGCOLOR="#000000"></TD>
</TR>
<TR BGCOLOR="<%=BackgroundColor%>">
<TD WIDTH=20 CLASS="reciept"> </TD>
<TD WIDTH=170 CLASS="reciept"><B>Summa:</B></TD>
<TD WIDTH=120 COLSPAN="2" CLASS="reciept" ALIGN=RIGHT><%= TotalPrice%> kr</TD>
</TR>
<%
end if
Rs.Close
Set Rs = Nothing
%>
</TABLE><br>
<a href="shFrames.asp">« Tillbaka till shoppen</A> | <a href="JavaScript:print()">Skriv ut</A><br>
</FORM>
</body>
</html>
<%
' CleanUp
Conn.Close
Set Conn = Nothing
%>
Okej, om vi sammanfattar det lite enkelt, det är alltså rad tre du fastnar på här?
1if not rs.eof then
2 shBasket = Rs.Fields("shBasket").Value
3 address = Rs.Fields("address").Value
4 postalcode = Rs.Fields("postalcode").Value
city = Rs.Fields("city").Value
email = Rs.Fields("email").Value
phone = Rs.Fields("phone").Value
name = Rs.Fields("fname").Value & " " & Rs.Fields("lname").Value
else
response.write "inga varor här"
end if
Då kommer allmänt tips två in: Plocka bort raden! Fastnar den sedan på rad 4, då är det dags att bli orolig...
Skrevs shBasket ut med ett värde? Om ja, varför blir inte resten av RS något då? Det är svårt för oss att lista ut...
(Och ja, du skriver ut RS när det är tomt, helt rätt, mitt råd ska tolkas som allmänt.)
Då har du problem... Den skriver alltså ut shbasket, fastnar på nästa? Då finns inte det fältet, helt enkelt, felstavat eller liknande. Kommentera bort raden, fortsätt med resten av koden, som jag skrev tidigare.
Svårt att ge ett annat råd, det är helfel någonstans alltså.
Jag skriver inte ut rs-värde som du gör, utan med RS("fält"), men det har ingen betydelse, finns det inte, finns det inte.
399 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91