Avatar billede neander Nybegynder
24. september 2003 - 11:36 Der er 23 kommentarer og
2 løsninger

Inner Join problem?

Hvad kan være i vejen med denne:

set rsprod=db.execute("SELECT * FROM products INNER JOIN categories ON products.catcode = categories.catcode WHERE productid = " & productid)

Jeg får denne fejlmedd.:
Elementet kan ikke findes i den samling, der svarer til det anmodede navn eller ordenstal.

Min dimentionering af "catcode" går galt, og jeg tror det har noget med min InnerJoin at gøre... men er ikke helt sikker.
Avatar billede tuctoh Nybegynder
24. september 2003 - 11:37 #1
WHERE productid = " & productid)

du skal sige hvad for en tabel productid er fra; catagories eller products
Avatar billede neander Nybegynder
24. september 2003 - 11:38 #2
undskyld, (er grøn i innerjoin), hvordan?
Avatar billede tuctoh Nybegynder
24. september 2003 - 11:42 #3
WHERE catagories.productid = " & productid)

for eksempel vil jeg tro
Avatar billede neander Nybegynder
24. september 2003 - 11:47 #4
hmm... nej, det virker stadig ikke. Hvad kan det så være?
Avatar billede Slettet bruger
24. september 2003 - 11:59 #5
SELECT * FROM products T1
INNER JOIN categories T2 ON T1.catcode = T2.catcode
WHERE T1.productid = " & productid
Avatar billede neander Nybegynder
24. september 2003 - 12:04 #6
Nu får jeg denne:
Strengkonstanten er uafsluttet
/product1.asp, line 31, column 48
set rsprod=db.execute("SELECT * FROM products T1
Avatar billede Slettet bruger
24. september 2003 - 12:05 #7
Prøv at sætte hele .asp siden ind her. Eller de første 40 linier
Avatar billede neander Nybegynder
24. september 2003 - 12:06 #8
OK jeg lægger lige de første mange sider ind:

ADVARSEL: langt!
Avatar billede Slettet bruger
24. september 2003 - 12:07 #9
Bare de først 40 linier, det er jo i linie 31 det går galt kan jeg se
Avatar billede tuctoh Nybegynder
24. september 2003 - 12:07 #10
i manny's eksempel er det fordi der mangler en ) til sidst... smid den ind på linien.
Avatar billede neander Nybegynder
24. september 2003 - 12:07 #11
de første 36 linjer:

<%@ LANGUAGE = "VBScript" %>
<% option explicit %>

<!-- #include file="db.asp" -->
<!-- #include file="../config.asp" -->
<!-- #include file="../functions.asp" -->
<html>

<head>
<title>
<%= storename %> Administration
</title>
</head>
<body bgcolor="<%= bgcolor %>" topmargin="0" leftmargin="0" marginwidth="0" marginheight="0" text="#000000" alink="#CC9966%>" link="#CC9966" vlink="#CC9966">
<font face="verdana, arial" size="2">


<%
Dim productid, stage, editcomplete
verify
productid=valid_sql(request.querystring("productid"))
stage=request.querystring("stage")
editcomplete=false




if not(productid=null and productid="" and not(isnumeric(productid))) then
//find de relevante produkt-detaljer
Dim rsprod
set rsprod=db.execute("SELECT * FROM products T1 INNER JOIN categories T2 ON T1.catcode = T2.catcode WHERE T1.productid = " & productid)

if rsprod.eof then
        response.redirect("error.asp?msg=" & Server.URLEncode("P&aring; grund af en igangv&aelig;rende opdatering, så findes det produkt du valgte ikke l&aelig;ngere i sortemintet.<br><br><a href=""adminmain.asp"">TRYK HER</a> for at opdatere."))
end if
Avatar billede neander Nybegynder
24. september 2003 - 12:08 #12
fejlmedd:
Elementet kan ikke findes i den samling, der svarer til det anmodede navn eller ordenstal.
/product1.asp, line 116
Avatar billede neander Nybegynder
24. september 2003 - 12:09 #13
linje 116:
catcode=rsprod("catcode")
Avatar billede tuctoh Nybegynder
24. september 2003 - 12:10 #14
det her er ikke dit problem, men vil blive det :p du skal huske at lukke dine forbindelser når du forlader siden!!

if rsprod.eof then
rsprod.Close
db.Close
Set rsprod = Nothing
Set db = Nothing
        response.redirect("error.asp?msg=" & Server.URLEncode("P&aring; grund af en igangv&aelig;rende opdatering, så findes det produkt du valgte ikke l&aelig;ngere i sortemintet.<br><br><a href=""adminmain.asp"">TRYK HER</a> for at opdatere."))
end if

ellers forbliver din db forbindelse åben
Avatar billede Slettet bruger
24. september 2003 - 12:10 #15
Ja, det er der fejlen er.

SQL = "SELECT * FROM products T1 INNER JOIN categories T2 ON T1.catcode = T2.catcode WHERE T1.productid = " & productid
set rsprod=db.execute(SQL)
SÅDAN
Avatar billede Slettet bruger
24. september 2003 - 12:12 #16
Tror også den her lige skal ændres fra
productid=valid_sql(request.querystring("productid"))

til
productid=Cint(valid_sql(request.querystring("productid")))
Avatar billede neander Nybegynder
24. september 2003 - 12:16 #17
Får stadig nødagtigt samme problem med denne linje:
catcode=rsprod("catcode")

fejlmedd:
Elementet kan ikke findes i den samling, der svarer til det anmodede navn eller ordenstal.
/product1.asp, line 116
Avatar billede neander Nybegynder
24. september 2003 - 12:16 #18
Jeg har lavet alle de ændringer, som I har foreslået.
Avatar billede neander Nybegynder
24. september 2003 - 12:18 #19
Jeg vil gene sende hele dokumentet og databasen, hvis der er en der vil bruge 10 minutter til lige at kigge på det...
Avatar billede tuctoh Nybegynder
24. september 2003 - 12:21 #20
ahh, I got it :)

SQL = "SELECT T1.* FROM products T1 INNER JOIN categories T2 ON T1.catcode = T2.catcode WHERE T1.productid = " & productid
set rsprod=db.execute(SQL)

prøv det
Avatar billede Slettet bruger
24. september 2003 - 12:21 #21
Sidder på arb så kan ikke lige nu.
Men umiddelbart vil jeg mene at den skal hedde :

catcode=rsprod("T1.catcode")
Hvis du altså har brugt min SQL, ellers ved den ikke hvilken Tabel den skal tage catcode fra.
Avatar billede tuctoh Nybegynder
24. september 2003 - 12:23 #22
nej, det kan du vist ikke manny... det skal du vise i din select, som jeg gjorde ved T1.* :)
Avatar billede neander Nybegynder
24. september 2003 - 12:25 #23
jeg tror måske at smukkemanny har ret i det med
catcode=rsprod("T1.catcode")

nu kommer der nogle andre fejlmedd... checker lige mine DIM igennem.
Avatar billede neander Nybegynder
24. september 2003 - 12:26 #24
hmm... nu virker det tilsyneladende, tester lige det hele igennem.
Avatar billede neander Nybegynder
24. september 2003 - 12:28 #25
Ja, den er der. Tak for hjælpen til jer begge to!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester