webForumDet fria alternativet

I´m back. Nu med LIKE-fråga

ASP

7 svar · 196 visningar · startad av Bendro

Medlem sedan jan. 20013 039 inlägg
Frågan#1

Låt mig bara göra klart med en gång att jag är hopplös på allt vad konkatinering heter. Förstår varför man måste göra det, men lyckas inte greppa logiken i hur man skriver koden.
Anyway..mitt nuvarande problem är när jag skall försöka göra en enkel sökning på ett medlemsregister. Kodraden som krånglar ser ut som följer:

sql="SELECT * FROM anvandare WHERE '"&varUnamn&"' LIKE '%"&varnamn&"%';"

varUnamn hämtas från ett formulär där användaren får ange vilket namn som söks. varnamn hämtas från samma lista via radiobuttons och anger om det är förnamn, efternamn eller username man söker på. Value på radiobutton är satt till motsvarande fältnamn i databasen.
Har kollat och får med mig värderna från formuläret utan problem.
Felet jag får är: Either BOF or EOF is True, or the current record has been deleted....etc.
Eftersom jag vet att posten existerar och att jag kan hämta från databasen från andra applikationer utgår jag från att det (som vanligt) är ett konkatineringsfel.
...eller?

------------------
"You can not solve todays problems with the same level of thinking that created the problems in the first place" Albert Einstein

Medlem sedan juni 200032 967 inlägg
#2

enligt din beskrivning så verkar det som om fältet som ska sökas är innehållet i varnamn, inte varUnamn.

därför borde sql-frågan se ut så här:

sql="SELECT * FROM anvandare WHERE "&varnamn&" LIKE '%"&varUnamn&"%';"

observera att det inte skall vara några apostrofer runt fältnamnet i frågan, endast runt värdet.

mvh,

------------------
<A HREF="http://cartman.nu" TARGET=_blank>
if i'm not back in five minutes, just wait longer.</A>

Medlem sedan jan. 20013 039 inlägg
#3

Funkade fint. Tankemiss från min sida gjorde att jag bytte plats på variablerna.

Men min lärare blev konfunderad när jag sa att jag skulle ta bort apostroferna.
Men det funkar utan dom och blir fel om jag har kvar dom...så det är ju inget att diskutera. Önskar bara att någon kunde förklara logiken bakom konkatinering...hur man skall tänka. Varje gång jag tror att jag fattat det så blir jag snabbt nertagen på jorden.

Anyway...tack för hjälpen.

------------------
"You can not solve todays problems with the same level of thinking that created the problems in the first place" Albert Einstein

Medlem sedan juni 200032 967 inlägg
#4

vad har du för lärare :q

skämt åsido, menar du logiken för att skapa en sql-fråga mha variabler och lösa strängar? konkatenering är ett ord jag mycket sällan använder...

------------------
<A HREF="http://cartman.nu" TARGET=_blank>
if i'm not back in five minutes, just wait longer.</A>

Medlem sedan juli 20003 825 inlägg
#5

Klart att du ska ta bort apostroferna! :-)

Om man skriver frågan på detta sättet är det mer tydligt:

sql= "SELECT * FROM [anvandare] WHERE [förnamn] LIKE '%Jakob%';"

I detta fallet har användaren valt att söka på förnamn och i fylla-i-fältet skrivit Jakob.

Are you with!?

------------------
Life is a bitch... and then you marry one.

Medlem sedan dec. 19996 721 inlägg
#6

Vad är problemet med konkatenering? I VBScript används & för detta, även om man också kan använda +. Detta är dock ej att rekommendera.

Medlem sedan jan. 20013 039 inlägg
#7

Min lärare kände väl sig lite dum när han fattade att han hade tänkt fel :e

När det gäller konkateneringen så har jag av någon oförklarlig anledning svårt för det. Någonstans i min lilla halvsovande hjärna vet jag att det antagligen är oerhört logiskt. Brukar snubbla över alla " , ' , & osv. Det kommer väl bara att klicka till en dag så är det kristallklart.

@nders...ja, det är precis vad jag menar. Kanske använder ordet fel? Det är i det sammanhanget jag fått lära mig det i alla fall.

------------------
"You can not solve todays problems with the same level of thinking that created the problems in the first place" Albert Einstein

Medlem sedan juni 200032 967 inlägg
#8

nej då inte tror jag du lärt dig fel i det fallet.

det är helt normalt att snubbla över olika fjumpar och &:ar. det ger sig nog...

------------------
<A HREF="http://cartman.nu" TARGET=_blank>
if i'm not back in five minutes, just wait longer.</A>

262 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)