---
title: "Avancerad Sökning funktion"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/167647-avancerad-sökning-funktion/page2"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "SGuncel"
published: "2007-12-29T16:45:15.000Z"
updated: "2008-01-14T19:33:24.000Z"
replies: 27
views: 1239
page: 2
pages: 2
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/databaser-sql/167647-avancerad-sökning-funktion"
---

# Avancerad Sökning funktion

_Sida 2 av 2._

## #21 — aasah, 2008-01-06T00:15Z

Annorlunda uttryckt: 

Ta strängen som är argument till SafeSql, och skriv ut den på raden innan du skickar frågan. Kopiera in värdet på den strängen här (som den ser ut i fönstret) när du kör skriptet .

Permalänk: https://www.webforum.nu/p/2068217

## #22 — SGuncel, 2008-01-09T05:54Z

```
<%
IF Request.Querystring("do")="search" then
	Set ObjRS = ObjConn.Execute("SELECT * FROM tblusers WHERE userName LIKE '%"&SafeSQL(Request.Form("userName"))&"%' and userSex LIKE "&SafeSQL(Request.Form("userSex"))&" and userAge BETWEEN "&SafeSQL(Request.Form("userAge"))&" and "&SafeSQL(Request.Form("userAge2"))&" and userLive LIKE '%"&SafeSQL(Request.Form("userLive"))&"%'" & " order by userName")

		IF ObjRS.Eof then
			Response.Write "Inga medlemmar hittades."
		else
%>
<table width="100%"  border="0" cellspacing="0" cellpadding="0" id="table6">
	<tr>
		<td style="width:25%;">Användarnamn</td>
		<td style="width:25%;">Kön</td>
		<td style="width:25%;">Ålder</td>
		<td style="width:25%;">Bor</td>
	</tr>
</table>

<table width="100%"  border="0" cellspacing="0" cellpadding="0" id="table7">
	<tr>
		<td width="100%" style="border-top: 1px solid Silver;"><img src="../_Grafik/Pix.gif" width="0" height="1"></td>
	</tr>
</table>

<%
	Do until ObjRS.Eof
%>
<table width="100%"  border="0" cellspacing="0" cellpadding="0" id="table5">
	<tr>
		<td style="width:25%;"><% Response.Write "<a href=""profil.asp?userId="&Server.HtmlEncode(ObjRS("userId"))&""">"&Server.HtmlEncode(ObjRS("userName"))&"</a>" %></td>
		<td style="width:25%;"><% Response.Write ""&Server.HtmlEncode(ObjRS("userSex"))&"" %></td>
		<td style="width:25%;"><%=Age(DateSerial(ObjRS("userAgeYear"), ObjRS("userAgeMonth"), ObjRS("userAgeDay")))%> år</td>
		<td style="width:25%;"><% Response.Write ""&Server.HtmlEncode(ObjRS("userLive"))&"" %></td>
	</tr>
</table>
<%
ObjRS.Movenext
Loop

ObjRS.Close : Set ObjRS = Nothing
ObjConn.Close : Set ObjConn = Nothing

End if
End if
%>
```

Permalänk: https://www.webforum.nu/p/2069001

## #23 — aasah, 2008-01-10T16:07Z

Alltså fortfarande: Visa **INTE** koden, visa vad som blir resultatet när koden körs.

Alltså... ASP är inte ett språk jag kan, men i princip...
1) Bryt ut SQL strängen från själva anropet till connect, lagra denna i en variabel.
2) Skriv ut variabeln på skärmen (ev kan du skriva ut den efter en ip-koll 
    av att det just är du som kör skriptet om andra kan köra det också.)
3) Kopiera den utskrivna variabeln in hit. 
Alltså (med reservation för dåligt ASP kunnande):

```
sqlQ = "SELECT * FROM tblusers WHERE userName LIKE '%"&SafeSQL(Request.Form("userName"))&"%' and userSex LIKE '%"&SafeSQL(Request.Form("userSex"))&"%' and userAge BETWEEN "&SafeSQL(Request.Form("userAge"))&" and "&SafeSQL(Request.Form("userAge2"))&" and userLive LIKE '%"&SafeSQL(Request.Form("userLive"))&"%'" & " order by userName"
< kod för att visa sqlQ på skärmen >
Set ObjRS = ObjConn.Execute(sqlQ)
```

Permalänk: https://www.webforum.nu/p/2069376

## #24 — SGuncel, 2008-01-13T17:08Z

Är de inte samma sak som voigtann1 sa innan och vi testade?

Permalänk: https://www.webforum.nu/p/2070072

## #25 — voigtann1, 2008-01-13T17:18Z

Vi vill se hur din senaste SQL sträng ser ut som du försöker få igång. Vad ASPn ska göra är inte alls viktigt i detta fall just nu.

Permalänk: https://www.webforum.nu/p/2070074

## #26 — SGuncel, 2008-01-14T02:39Z

Det här är man senaste SQL Sträng, som jag försöker få igång.

```
SELECT * FROM tblusers WHERE userName LIKE '%"&SafeSQL(Request.Form("userName"))&"%' and userSex LIKE '%"&SafeSQL(Request.Form("userSex"))&"%' and userAge BETWEEN "&SafeSQL(Request.Form("userAge"))&" and "&SafeSQL(Request.Form("userAge2"))&" and userLive LIKE '%"&SafeSQL(Request.Form("userLive"))&"%'" & " order by userName
```

Permalänk: https://www.webforum.nu/p/2070184

## #27 — voigtann1, 2008-01-14T05:49Z

Fortfarande vill vi ha ut din SQL sträng som du försöker generera... dvs vad userName i ditt form innehåller, userSex osv.

Permalänk: https://www.webforum.nu/p/2070188

## #28 — aasah, 2008-01-14T19:33Z

Det du har postat ovan är hur SQL-strängen ser ut i ditt skript, dvs där du sätter ihop den. **MEN** det du skickar till databasen när skriptet körs är den evaluerade strängen, och det är **DEN** vi vill se.

Låt oss säga att din fråga var betydligt enklare:

```
SELECT * FROM tblusers WHERE userName LIKE '%"&SafeSQL(Request.Form("userName"))&"%"'
```

Om nu den form som du hämtar värdet ifrån innehåller *Kalle* så kommer den sträng som skickas till databasen att se ut så här:

```
SELECT * FROM tblusers WHERE userName LIKE '%Kalle%'
```

Om formen innehåller *urk* så skickas:

```
SELECT * FROM tblusers WHERE userName LIKE '%urk%'
```

Så: 
1) Kör ditt skript med vilka som helst värden i formuläret vilka borde funka men inte gör det, 
2) Se till att körningen visar din evaluerade SQL-sträng i fönstret.
3) Klistra in denna här.

Permalänk: https://www.webforum.nu/p/2070351

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/167647-avancerad-sökning-funktion/page2  
Föregående sida: https://www.webforum.nu/amne/databaser-sql/167647-avancerad-sökning-funktion.md
