välj sökning

ASP

40 svar · 282 visningar · startad av crisse6 · sida 2 av 3

Trådstarten, av crisse6

tjabba! jag har gjort en väldigt enkel sökmotor för att söka igenom en databas. jag har några fält i tabellen users som finns i databasen som heter namn, efternamn, kon, osv.... om jag nu vill via formuläret som man söker i ska kunna välja om man vill hitta bara tjejer eller bara killar...så kan man ju lägga till en rullgardinsmeny i formuläret men hur blir det i asp-koden? så här ser den ut för

Läs hela trådstarten →
Medlem sedan dec. 20002 526 inlägg
#21

löste det med om "Inga resultat" med en liten if-sats innan jag hann läsa Rossifumis inlägg, tack ändå :e

så här gjorde jag, inte så tokigt av en nybörjare...eller?

<%
Set Databas = Server.CreateObject("ADODB.Connection")
MdbFilePath = Server.MapPath("users.mdb")
Databas.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ= " & MdbFilePath & ";"
%>

<%
kon = Request.Form("kon")
ar = Request.Form("ar")
sokning = Request.Form("sokning")
SQL = "SELECT * FROM users WHERE (Username LIKE '%" & sokning & "%' OR namn LIKE '%" & sokning & "%') AND kon = '" & kon & "' AND ar = '" & ar & "'"
Set rsBra = databas.execute(SQL)
If rsBra.EOF then
Response.Write "Vi kunde inte hitta den grodan som du letade efter. Försök att vara lite mer exakt. *Kvack*"
else
Do Until rsBra.EOF

Response.Write "Förnamn: " & "<b>" & rsBra("Namn") & "<br>" & "</b>"
Response.Write "Efternamn: " & rsBra("Efternamn") & "<br>"
Response.Write "Emejl: " & rsBra("E-post") & "<br>"
Response.Write "Bor: " & rsBra("Bor") & "<br>"
Response.Write "Kön: " & rsBra("Kon") & "<br>"
Response.Write "Född: " & rsBra("ar") & rsBra("manad") & rsBra("dag") & "<br>"
Response.Write "Så här beskriver jag mig själv:" & "<br>" & rsBra("Fakta") & "<br>"

Response.Write "Nickname: " & rsBra("Username") & "<br>" & "<a href=""blikompis.asp?Username=" &  rsBra("Username") & """>Bli polare!</a><br><br>"
Response.Write "<img src=""hr.jpg"" width=""846"" height=""11"" border=""0"">" & "<br>"
rsBra.MoveNext
Loop
%>
<% End If %>
&nbsp;</font></td>
    </tr>
Medlem sedan dec. 20002 526 inlägg
#22

givetvis hade jag ju en fråga också!

om man vill ha en "räknare" där sökresultaten visar sig som te x visar "Vi hittade 10 st personer med det namnet" eller ngt sånt...hur gör man det... recordcount kanske?

Medlem sedan juli 2000355 inlägg
#23

Får upp fel,

Syntax error (missing operator) in query expression '(beskrivning LIKE '%test%' OR titel LIKE '%test%') AND kat ='.

Medlem sedan juni 200032 967 inlägg
#24

av någon anledning får inte variabeln kat något värde.

jag ser nu ingen utväg annan än att du postar koden till de båda sidorna som används.

mvh,

Medlem sedan dec. 19998 577 inlägg
#25

Har du verkligen med min If-sats? den skall ju inte lägga till någon "AND kat..." om kat inte innehåller något värde...

Medlem sedan juli 2000355 inlägg
#26

Nej jag hade inte med if satsen, la till den nu, men väljer jag ingen kategori så får jag bara upp en tom vit sida.

Medlem sedan dec. 1999653 inlägg
#27

crisse6: såhär skulle de kunna se ut kanske :)

<%
Set Databas = Server.CreateObject("ADODB.Connection")
MdbFilePath = Server.MapPath("users.mdb")
Databas.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ= " & MdbFilePath & ";"
%>
<%
kon = Request.Form("kon")
ar = Request.Form("ar")
sokning = Request.Form("sokning")

[b]SQL = "SELECT Count(*) AS iAntalSvar FROM users WHERE (Username LIKE '%" & sokning & "%' OR namn LIKE '%" & sokning & "%') AND kon = '" & kon & "' AND ar = '" & ar & "'"
Set rsBra = databas.execute(SQL)

Dim iAntalSvar
iAntalSvar = rsBra("iAntalSvar")[/b]

SQL = "SELECT * FROM users WHERE (Username LIKE '%" & sokning & "%' OR namn LIKE '%" & sokning & "%') AND kon = '" & kon & "' AND ar = '" & ar & "'"
Set rsBra = databas.execute(SQL)
If rsBra.EOF then
Response.Write "Vi kunde inte hitta den grodan som du letade efter. Försök att vara lite mer exakt. *Kvack*"
else

[b]Response.Write "Vi hittade <b>"& iAntalSvar &"</b> grodor som matchade din sökning *wuaaää*"[/b]

Do Until rsBra.EOF

Response.Write "Förnamn: " & "<b>" & rsBra("Namn") & "<br>" & "</b>"
Response.Write "Efternamn: " & rsBra("Efternamn") & "<br>"
Response.Write "Emejl: " & rsBra("E-post") & "<br>"
Response.Write "Bor: " & rsBra("Bor") & "<br>"
Response.Write "Kön: " & rsBra("Kon") & "<br>"
Response.Write "Född: " & rsBra("ar") & rsBra("manad") & rsBra("dag") & "<br>"
Response.Write "Så här beskriver jag mig själv:" & "<br>" & rsBra("Fakta") & "<br>"

Response.Write "Nickname: " & rsBra("Username") & "<br>" & "<a href=""blikompis.asp?Username=" & rsBra("Username") & """>Bli polare!</a><br><br>"
Response.Write "<img src=""hr.jpg"" width=""846"" height=""11"" border=""0"">" & "<br>"
rsBra.MoveNext
Loop
%>
<% End If %>
 </font></td>
</tr>

har inte testat koden, men detta bör nog funka! :e

MVH

Medlem sedan juli 2000355 inlägg
#28

Ingen annan som har något förslag, jag har försökt på alla sätt och vis för att få koden att funka men det vill sig inte.

Medlem sedan dec. 20002 526 inlägg
#29

Kent, det är så rörigt i detta ämne, kan du förklara igen hur du vill att det ska funka så kan vi nog hjälpa dig lättare :)

Medlem sedan juli 2000355 inlägg
#30

Man ska kunna välja ett sökord samt en kategori och söka på det, det funkar bra med ovanstående kod, men om man väljer ett sökord men sen ingen kategori så funkar inte det inte alls.

Medlem sedan dec. 20002 526 inlägg
#31

jag vet inte, men går det inte att ändra "AND" till "OR" eller????

Medlem sedan juli 2000355 inlägg
#32

Nej det funkar inget bättre.

Medlem sedan dec. 19998 577 inlägg
#33

Man ska kunna välja ett sökord samt en kategori och söka på det, det funkar bra med ovanstående kod, men om man väljer ett sökord men sen ingen kategori så funkar inte det inte alls.

Definiera "funkar inte alls"... :)

Medlem sedan juli 2000355 inlägg
#34

En tom vit sida.

Medlem sedan dec. 19998 577 inlägg
#35

... och testade du min kod tidigare i denna tråd?

Medlem sedan juli 2000355 inlägg
#36

Det är den jag använder.

Medlem sedan dec. 19998 577 inlägg
#37

Okej, visa din SQL-sträng som den är nu... :)

Medlem sedan juli 2000355 inlägg
#38

Visst här kommer den,

kat = Request.QueryString("kat")
sokord = Request.QueryString("sokord")

SQL = "SELECT * FROM data WHERE (beskrivning LIKE '%" & sokord & "%' OR titel LIKE '%" & sokord & "%')"
If kat <> "" then 
SQL = SQL & " AND kat = " & kat & ""
Medlem sedan dec. 19998 577 inlägg
#39

Ifsatsen skall ligga på en och samma rad:

If kat <> "" then SQL = SQL & " AND kat = " & kat

Och har du lagt till en end If längre ned pga av denna if, så kan du ta bort den...

Medlem sedan juli 2000355 inlägg
#40

Ja nu funkar det.
Man får tacka så mycket för hjälpen.!

253 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)