webForumDet fria alternativet

sökning i databas

11 svar · 355 visningar · startad av WebbisNet

WebbisNetMedlem sedan feb. 20032 027 inlägg
#1

kan någon säga varför inte detta fungerar när jag ska söka i databasen, får inga resultat

<form action="/search/default.asp" method="post">
<input type="text" name="sok" value=""> 
<input type="submit">
</form>
<%Set sokRS=objConn.Execute("Select username, userID From tblUsers where username LIKE '%" & sok & "%'" )%>

<%
if sokRS.EOF then
response.write "Inga poster kunde hittas"
else
do until sokRS.EOF
response.write ""& username &" <br>"
sokRS.MoveNext
Loop
end if
%>
@ndersMedlem sedan juni 200032 969 inlägg
#2

Du sätter aldrig variabeln sok till något, exempelvis:

sok = replace(request.form("sok"), "'", "''")

Edit: fast visserligen borde du få träff på alla poster med den kod du har nu.

Prova alltid att skriva ut SQL-frågan, så ser du om det är något värde som saknas.

Mvh

WebbisNetMedlem sedan feb. 20032 027 inlägg
#3
<%Set sokRS=objConn.Execute("Select username, userID From tblUsers where username LIKE '%" & username & "%'" )%>
<form action="/search/default.asp" method="post">
<input type="text" name="sok" value=""> 
<input type="submit">
</form>

<%sokUsername = replace(request.form("sok"), "'", "''")%>
<%
if sokRS.EOF then
response.write "Inga poster kunde hittas"
else
do until sokRS.EOF
response.write ""& sokUsername &" <br>"
sokRS.MoveNext
Loop
end if
%>

Detta var inte heller riktigt rätt :-D

@ndersMedlem sedan juni 200032 969 inlägg
#4

Nä, du kan inte ställa SQL-frågan innan du skapat variabeln. (Dessutom skapar du en variabel som heter sokUsername, men i SQL-frågan använder du username?)

Visst är det så att formuläret postar till samma sida?

WebbisNetMedlem sedan feb. 20032 027 inlägg
#5
<form action="/search/default.asp" method="post">
<input type="text" name="sok" value=""> 
<input type="submit">
</form>

<%sokUsername = replace(request.form("sok"), "'", "''")%>
<%Set sokRS=objConn.Execute("Select username From tblUsers where username LIKE '%" & sokUsername & "%'" )%>

<%
if sokRS.EOF then
response.write "Inga poster kunde hittas"
else
do until sokRS.EOF
response.write ""& sokUsername &" <br>"
sokRS.MoveNext
Loop
end if
%>

Hur får man nu sql-en att skriva ut hela namnet på matchande användare

@ndersMedlem sedan juni 200032 969 inlägg
#6
do until sokRS.EOF
response.write sokRS("username") &" <br>"
sokRS.MoveNext
Loop

Mvh

WebbisNetMedlem sedan feb. 20032 027 inlägg
#7

TACK @nders

WebbisNetMedlem sedan feb. 20032 027 inlägg
#8

vet inte vad jag gjorde, först funka det, nu visar den alla poster innan man hinner söka

@ndersMedlem sedan juni 200032 969 inlägg
#9

Du får sätta en ifsats runt sökningen, så den bara körs om man har postat formuläret.

sokUsername = replace(request.form("sok"), "'", "''")
if sokUsername <> "" then
   Set sokRS=objConn.Execute("Select username From tblUsers where username LIKE '%" & sokUsername & "%'" )

   if sokRS.EOF then
   response.write "Inga poster kunde hittas"
   else
   do until sokRS.EOF
   response.write ""& sokUsername &" <br>"
   sokRS.MoveNext
   Loop
   end if
end if
%>

Mvh

WebbisNetMedlem sedan feb. 20032 027 inlägg
#10

Tack vare din hjälp @nders så kan jag nu söka efter användarnamn, man eller kvinna :-)

@ndersMedlem sedan juni 200032 969 inlägg
#11

Härligt!

Lycka till med resten! :bire

WebbisNetMedlem sedan feb. 20032 027 inlägg
#12

funderar på att klistra in koden här om nån annan vill veta hur man gör, vad tycker du?

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