---
title: "2 sökproblem!"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/13562-2-sökproblem"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "ConnyFox"
published: "2002-01-04T13:47:00.000Z"
updated: "2002-01-04T21:00:00.000Z"
replies: 5
views: 230
page: 1
pages: 1
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/asp/13562-2-sökproblem"
---

# 2 sökproblem!

## #1 — ConnyFox, 2002-01-04T13:47Z

har gjort en liten sökmotor till användar databasen och har stött på 2 problem.

Nr1 : man ska kunna söka på ålder, men i databasen är ju användarnas födelsedatum lagrat. typ 1984-02-06 osv.. svårt o söka på 17 då o få en träff hur ska jag lösa detta?

Nr2 : Jo jag har en funktion där man söker fram medlemmar, och sedan ska man kunna sortera resultaten efter användarnamn, namn eller efternamn.

vist går det att sortera dom bra, men det är alla användare som sorteras och inte dom man får fram efter sökningen. har pilalr med detta en lång stund nu men har hjärnsläpp o kan inte komma på hur jag ska lösa det.

Sql sats för sökningen

```
if Request.querystring("search") = "search" then
SQL = "SELECT * FROM members WHERE namn LIKE '%" & request.form("namn") & "%' AND nick LIKE '%" & request.form("nick") & "%' AND efternamn LIKE '%" & request.form("efternamn") & "%' AND alder LIKE '%" & request.form("alder") & "%'"
```

För att sortera medlemmarna

```
elseif Request.querystring("order") = "nick" then
SQL = "SELECT * FROM members ORDER BY nick"

elseif Request.querystring("order") = "namn" then
SQL = "SELECT * FROM members ORDER BY namn"

elseif Request.querystring("order") = "efternamn" then
SQL = "SELECT * FROM members ORDER BY efternamn"

elseif Request.querystring("order") = "alder" then
SQL = "SELECT * FROM members ORDER BY alder DESC"

else
SQL = "SELECT * FROM members ORDER BY datum"
```

Länkarna för att sortera

```
<tr><td>
<a href="default_members.asp?order=nick">Stajlnamn</a>
</td><td width="50">
<a href="default_members.asp?order=alder">Ålder</a>
</td><td>
<a href="default_members.asp?order=namn">Namn</a>
</td><td>
<a href="default_members.asp?order=efternamn">Efternamn</a>
</td><td>
```

Försökte att lägga till order by funktionen i sök SQL:en men d gick inte särskilt bra.

Plus att man måste väll på något vis få med sig söknings värderna i länkarna som sorterar ?

tacksam för svar detta va en lite för hård nöt för mig just nu :o)

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

## #2 — juventus1, 2002-01-04T18:47Z

Hej!

Fråga nr 1 (otestad kod men kanske ger dig lite ideer):

```
birthyear = Year(now) - cint(Request.form("age"))
SQL = "SELECT * FROM members WHERE namn LIKE '%" & request.form("namn") & "%' AND nick LIKE '%" & request.form("nick") & "%' AND efternamn LIKE '%" & request.form("efternamn") & "%' AND alder LIKE '%" & [b]birthyear[/b] & "%'"
```

Fråga nr 2: Du måste byta SQL-sträng till samma som för sökningen

```
birthyear = cdate(Year(now) - cint(Request.form("age")))
if Request.querystring("order") = "nick" then
SQL = "SELECT * FROM members WHERE namn LIKE '%" & request("namn") & "%' AND nick LIKE '%" & request("nick") & "%' AND efternamn LIKE '%" & request("efternamn") & "%' AND alder LIKE '%" & [b]birthyear[/b] & "%' ORDER BY nick"
elseif ....

<a href="default_members.asp?order=nick&namn=<% =request("namn")"&nick=OSV....>Sortera</a>
```

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

## #3 — ConnyFox, 2002-01-04T19:27Z

tack för hjälpen men det va inte till så mycket hjälp e jag rädd =/

1\.
När jag använde din kod för datumsökning så fick man inte fram någonting alls när man sökte på något fält alls.  O sökte man på ålder så fick man fram alla :o) Lite knepigt :o)

```
birthyear = Year(now) - cint(Request.form("age"))
```

2\. Iden är god men ett problem är att om man söker så finns ju request.form att använda när man sorterar. men om man vill sorterera igen så finns dom ju inte kvar ?!
Sökning - ger request.forms
sortering - använder request.formsen och ger ny sida.
Sortering igen - inga request.forms och det funkar inte.

Eftersom inte request.forms hänger med mellan sidorna om man inte använt just en form på sidan innan så funkar det inte..

Så man e egentligen tvungen att använda request.querystrings i länkarna för att få nya querystrings till nästa.. o d går ju inte för man måste ju använda request.forms FÖRSTA gången för att äns få några request.querystring på andra.. äsh d e hel knepigt :o)

Antagligen inte nån som fattar men kolla mit problem på toppen så kanske nån kan lösa det :o)

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

## #4 — ConnyFox, 2002-01-04T20:05Z

Juventus sorry jag såg nu att du hadde använt request på dom andra istället för request.form, precis så som jag lyckades lösa det sen :o) tackar tackar ska kolla bättre nästa gång :o) men din ålder funktion funka inte riktigt =/

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

## #5 — juventus1, 2002-01-04T20:05Z

Prova det här(fungerade när jag provade nu):

```
session.lcid = 1053
birthyear = cdate((year(now) - 17) & "-01-01")
```

2\.
Hade tänkt mig så här:
Request.Form, fyll i rätt uppgifter i sortera länken, ta sedan emot uppgifterna till sql-strängen så här:
Länken:

```
<a href="default_members.asp?order=efternamn&namn=<% =request("namn") %>&nick=<% =request("nick") %>&efternamn=<% =request("efternamn") %>&alder=<% =request("alder") %>">Efternamn</a>
```

Sql-strängen:

```
sql = "SQL = "SELECT * FROM members WHERE namn LIKE '%" & request("namn") & "%' AND nick LIKE '%" & request("nick") & "%' AND efternamn LIKE '%" & request("efternamn") & "%' AND alder LIKE '%" & form("alder") & "%'"
```

Request("valfritt namn") söker efter alla postade värden med valfritt namn.

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

## #6 — ConnyFox, 2002-01-04T21:00Z

Löste det såhär istället

if Request.querystring("search") = "search" then

if not request.form("alder") = "" then
BirthFrom = DateAdd("yyyy", -request.form("Alder"), Date)
BirthTo = DateAdd("yyyy", -(request.form("Alder")+1), Date)

SQL = "SELECT \* FROM members WHERE namn LIKE '%" & request("namn") & "%' AND nick LIKE '%" & request("nick") & "%' AND efternamn LIKE '%" & request("efternamn") & "%' AND alder \<= #" & BirthFrom & "# AND alder \> #" & BirthTo & "#"
else
SQL = "SELECT \* FROM members WHERE namn LIKE '%" & request("namn") & "%' AND nick LIKE '%" & request("nick") & "%' AND efternamn LIKE '%" & request("efternamn") & "%'"
end if

funkar fin fint så fattar jag koden oxå :o)

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/13562-2-sökproblem
