Jag har problem...
Jag har kategori idn, dessa är siffror men dom står i textfält i datbasen. Ingen bra lösning, jag vet, men det är inte heller jag som skapat databasen...grrr...
Alltså är dessa idn att tolkas som TEXT.
Jag vill nu göra en jämförelse mellan detta TEXT id (tex 4) och ett Category_id som är AutoNummer. Men det vill sig inte. Jag vet också att man måste använda Cint() för sådant men...fortfarande ingen lycka.
Det är inte alltid så att det finns ett TEXT id att jämföra med, ibland kan fältet vara tomt, därav IF satsen.
Kan någon se vad jag gör fel?!! Jag har testat oräkneliga versioner men får samma fel. Nedan den sista versionen...som naturligtvis inte funkar.
' search1 ar alltsa TEXT idt (tex 4)
IF (rs("search1")) = "" then
response.write "n/a"
ELSE
'jag har ocksa testat att gora search1 till en variabel och jamfora den mot pid men far samma fel.
pid = [b]Cint(rs("search1"))[/b]
sql2 = "select * from category WHERE category_id = "& pid &";"
set rs2 =conn.execute(sql2)
END IF
Felmeddelande....
Microsoft VBScript runtime error '800a005e'
Invalid use of Null: 'Cint'
/powerbox/documents/search_log_live.asp, line 47
som pekar på:
pid = Cint(rs("search1"))
Det är ju måndag och hjärncellerna står stilla...så jag skulle uppskatta om någon bankade liv i mig och talade om vad jag gör fel! ;)
/A
guckenMedlem sedan sep. 2001287 inlägg prova med att kolla om rs("search1") är tom med hjälp av len() ist.
Vad jag ser så verkar det iaf vara däruppe det igentliga felet ligger.
PallemanMedlem sedan dec. 2000557 inlägg Känns som om rs("search1") är tom trots din test..
Testa detta:
strSearch1 = rs("search1")
IF Len(strSearch) < 1 Then
response.write "n/a"
ELSE
pid = Cint(strSearch1)
sql2 = "select * from category WHERE category_id = "& pid
set rs2 =conn.execute(sql2)
END IF
För att även klara av null:
If Len(str & "") = 0 Then ...
Hej,
TACK för era svar! :)
Nu har jag testat följande:
<%
strSearch1 = rs("search1")
IF Len(strSearch) < 1 OR Len(strSearch) = "0" OR Len(strSearch) = "" Then
response.write "n/a"
ELSE
pid = Cint(strSearch1)
sql2 = "select * from category WHERE category_id = "& pid
set rs2 =conn.execute(sql2)
response.write (rs2("category"))
END IF
%>
Nu skriver den bara n/a...heeeeeeeeeeeela vägen ner.
Jag vet att det finns idn i textfältet search1, men den menar att det inte finns alls tydligen.
Kanske ska förklara vad jag gör....
Jag visar upp alla sökningar som sker mot min produktdatabas. När en användare kör en avancerad sökning så väljer han vad han vill söka på från ett antal dropdowns. Search1 är i detta fallet Category och visar på produktområde.
Nu har jag gjort en sida som listar (loop) sökningar efter hand som dom görs, men bara för att mina chefer skall ha någon nytta av den så måste jag översätta search1 idt till namnet i min category tabell. Category_id (auto) motsvarar då search1 (nummer fast i text), fast mitt problem är att det ena är nummer och det andra är text.
Ibland är search1 tomt då en användare inte är tvungen att söka med hjälp av alla dropdowns. I dessa fall läggs inget in i databasen under search1.
Vad är det jag missar?!!
*djup suck*
/A
I if-satsen ovan har du inte använt variabeln strSearch1 utan strSearch... Men så kanske det inte är i den riktiga koden?
Du har förstås testat att göra response.write på strSearch1 för att säkert veta att du har något vettigt i den?
He he he...så rätt du har Angena! Me = pucko pucko päron!
Men...
<%
strSearch1 = rs("search1")
IF Len(strSearch1) < 1 OR Len(strSearch1) = 0 OR Len(strSearch1) = "" Then
response.write "n/a"
ELSE
pid = Cint(strSearch1)
sql2 = "select * from category WHERE category_id = "& pid
set rs2 =conn.execute(sql2)
response.write (rs2("category"))
END IF
%>
...genererar följande fel:
Microsoft VBScript runtime error '800a005e'
Invalid use of Null: 'Cint'
/powerbox/documents/search_log_live.asp, line 79
Som pekar på ett tomt search1 fält.
Just nu listar den tex de två senaste sökningarna korrekt, visar category och allt precis som den ska! Men i tredje sökningen (raden i tabellen) är search1 tomt och då ger den fel...
Tyckte att jag täckte in alla If delar...
/A
Hej,
Löste det...
Fick göra en lite maffigare IF sats...
Tack så hemskt mycket för hjälpen allihop! :)
/A
Varför avända en maffig If sats när man kan göra som jag skrev? ;)
Hmm du har så rätt Erik...så rätt! :) *ändrar*