---
title: "strul med sökscript..."
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/58659-strul-med-sökscript"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "G8"
published: "2002-11-10T15:35:11.000Z"
updated: "2002-11-10T21:51:43.000Z"
replies: 7
views: 275
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/58659-strul-med-sökscript"
---

# strul med sökscript...

## #1 — G8, 2002-11-10T15:35Z

Jag använder mig av [Emissions sökscript](http://www.webforum.nu/showthread.php?s=&threadid=57391) , dock med en liten modifikation.

Har en dropdown meny där man kan välja vad man vill söka efter, och koden blir då:

```
alt = Request.Form("alt")
'grunddelarna i frågan beroende på valt alternativ
IF alt = "news" then
mSQL="SELECT nyheter.id, nyheter.rubrik, nyheter.artikel, nyheter.skribent, users.nick FROM nyheter INNER JOIN users ON nyheter.skribent = users.id WHERE " 
mWhere="artikel LIKE '%%' OR rubrik LIKE '%%' OR skribent LIKE '%%' OR users.nick LIKE '%%'"
Page="News"
elseif alt = "users" then
mSQL="SELECT users.id, klubbar.namn, regioner.namn, users.nick, users.city, users.info FROM users INNER JOIN klubbar ON klubbar.id = users.klubbid INNER JOIN regioner ON users.regionid = regioner.id WHERE " 
mWhere="users.nick LIKE '%%' OR klubbar.namn LIKE '%%' OR users.info LIKE '%%' OR regioner.namn LIKE '%%' OR users.city LIKE '%%'"
Page="Users"
elseif alt = "clubs" then
mSQL="SELECT klubbar.id, klubbar.namn AS klubbnamn, regioner.namn, klubbar.regionid, sporter.namn, idrotter.namn FROM klubbar INNER JOIN sporter ON klubbar.sportid = sporter.id INNER JOIN idrotter ON idrotter.sportid = klubbar.sportid INNER JOIN regioner ON klubbar.regionid = regioner.id WHERE "
mWhere="klubbar.namn LIKE '%%' OR sport.namn LIKE '%%' OR regioner.namn LIKE '%%' OR idrotter.namn LIKE '%%'"
Page="Clubs"
end if
```

Jag skriver sedan ut med hjälp av:

```
<%
If rs.EOF Then
Response.write("<p>Sorry, no results were found for this search.<p>It may help to<br><ul><li>Check your spelling</li><br><li>Enter a less specific phrase</li><br><li>Enter a more specific phrase, using i.e.""AND NOT""</li></lu>")
Else
%>
                  <p> 
                    <%
Do until rs.EOF
IF Page = "News" then%>
<a href="news.asp?NID=<%=rs("Id")%>"><%=rs("Rubrik")%></a><br>
<%
Elseif Page = "Users" then%>
<a href="userinfo.asp?userid=<%=rs("Id")%>"><%=rs("nick")%></a><br>
<%
Elseif Page = "Clubs" then%>
<a href="clubinfo.asp?clubid=<%=rs("Id")%>"><%=rs("klubbnamn")%></a><br>
<%
end if
rs.MoveNext
Loop

End If
rs.close
set rs=nothing
Connection.close
set Connection=nothing
%>
```

Det funkar jättebra om man söker på nyheter eller users, men så fort man söker på klubbar så skriver den ut samma sak flera gånger. Det enda jag kan tänka mig är att den hittar söksträngen i flera tabeller och därför loopar igenom den... Jag vill dock begränsa så att den bara skriver ut resultatet en gång, även om den hittar söksträngen i flera tabeller..

Finns det nått sätt att begränsa detta?

Mvh

//G8

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

## #2 — G8, 2002-11-10T21:07Z

Vet inte riktigt varför, men det verkar som om det har löst sig, tog bort klubbar.regionid samt bytte idrotter.sportid mot idrotter.id...

Ser inte riktigt hur det skulle påverka så att den skriver ut två av varje.. Men eftersom jag hittade det till slut så spelar det ingen större roll :)

//G8

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

## #3 — G8, 2002-11-10T21:18Z

Btw: hur ska jag begränsa antalet max resultat den ska skriva ut?

Tänkte jag kunde använda mig av nått i stil med

```
mSQL="SELECT klubbar.id, klubbar.namn AS klubbnamn, regioner.namn, klubbar.regionid, sporter.namn, idrotter.namn FROM klubbar INNER JOIN sporter ON klubbar.sportid = sporter.id INNER JOIN idrotter ON idrotter.sportid = klubbar.sportid INNER JOIN regioner ON klubbar.regionid = regioner.id WHERE "
mWhere="klubbar.namn LIKE '%%' OR sport.namn LIKE '%%' OR regioner.namn LIKE '%%' OR idrotter.namn LIKE '%%' [B]ORDER BY klubbar.namn asc LIMIT 50[/B]"
```

Får då följande felmeddelande:
\[TCX\]\[MyODBC\]You have an error in your SQL syntax near 'ORDER BY klubbar.namn asc LIMIT 50)' at line 1 

...?

//G8

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

## #4 — LarsG, 2002-11-10T21:34Z

Du får lägga till limit efter det att man har byggt where-villkoret

```
mQuery=mSQL & mQuery & join(mNotArr," AND NOT ") & " limit 50"
```

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

## #5 — G8, 2002-11-10T21:39Z

Ok, får då följande felmeddelande...

ser ut som om en parantes har smugit sig in..

Microsoft OLE DB Provider for ODBC Drivers fel '80040e09' 

\[TCX\]\[MyODBC\]You have an error in your SQL syntax near 'ORDER BY klubbar.namn desc) limit 50' at line 1 

/search.asp, rad 89

//G8

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

## #6 — kb00obfr, 2002-11-10T21:42Z

ska det inte vara

```
mQuery=mSQL & mQuery & join(mNotArr," AND NOT )" & " limit 50"
```

dvs byta plats på " och )

> **LarsG skrev:**
>
> Du får lägga till limit efter det att man har byggt where-villkoret
> 
>
>
> ```
> mQuery=mSQL & mQuery & join(mNotArr," AND NOT ") & " limit 50"
> ```

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

## #7 — G8, 2002-11-10T21:45Z

Nope, så skulle det inte vara ;)

Det är ORDER BY satsen där uppe som ställer till det, måste flytta ner den till samma rad som jag har LIMIT på verkar det som..

Mvh

//G8

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

## #8 — G8, 2002-11-10T21:51Z

Gjorde alltså såhär:

```
if mQuery<>"" and ubound(mNotArr) > -1 then mQuery=mQuery & " AND NOT "
mQuery=mSQL & mQuery & join(mNotArr," AND NOT ")
if page = "News" then
mQuery=mQuery & " ORDER BY nyheter.rubrik asc limit 100"
elseif page = "Users" then
mQuery=mQuery & " ORDER BY users.nick asc limit 100"
else
mQuery=mQuery & " ORDER BY klubbar.namn asc limit 100"
end if
'frågan är klar! Ligger i mQuery

set rs=Connection.execute(mQuery)
```

Tack för hjälpen! :)

//G8

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/58659-strul-med-sökscript
