Avatar billede biver.dk Nybegynder
13. februar 2006 - 00:29 Der er 9 kommentarer og
2 løsninger

Avanceret søg

Hej

Hvordan laver man en avanceret søgefunktion hvor man henter resultatet i en MySQL database.

Foreksempel hvis der er 10 checkbokse hvor man kan vælge ja eller nej til alle vil det være besværligt at lave en "if" funktion til alle muligheder.

Nærmere forklarelse?
Avatar billede keysersoze Ekspert
13. februar 2006 - 11:28 #1
du undgår ikke en eller anden form for if-sætninger - enten i din sql eller i din variabel-sætning. Hvis det i det her tilfælde bare er ja/nej-felter så kan du for lethedens skyld måske lave en funktion til det i stedet for at køre if'er på alle felter;

function test(var)
  if var <> "true" Then
    test = "false"
  else
    test = var
  end if
end function

FIELD1 = test(Request.Form("field1"))

men præcis hvordan det kan sættes sammen afhænger selvfølgelig af hvordan databasen er opbygget og dermed hvad du kan sende til den i din sql... men if-sætninger slipper du ikke helt for :)
Avatar billede biver.dk Nybegynder
13. februar 2006 - 14:09 #2
hvordan laver man en if sætning i en sql?

fx. hvis den er ja:
set pris=conn.execute("select * from database where status="1" ")

og ved nej:
set pris=conn.execute("select * from database where status="2" ")
Avatar billede websam Nybegynder
13. februar 2006 - 14:25 #3
De ter lettere at lave en function til det :

Function DbSelect(intTest)
    'noget database opkobling
    set pris=conn.execute("select * from database where status="& intTest &" ")
End Function

på den måde kan du kalde din function med 1 el. 2 eller hvad du nu skal have med som variabel.

/Websam
Avatar billede keysersoze Ekspert
13. februar 2006 - 14:27 #4
I et tilfælde hvor der altid vil være en værdi ville jeg ikke lave if'er direkte på sql'en, så ville jeg hellere bruge en function som i min første kommentar eller lave det ved variabelsætningen;

STATUS = Request.Form("status")
If STATUS = "" Then
  STATUS = "2"
End If

Og ellers et eksempel på if ifm sql;

SQL = "SELECT * FROM database WHERE id <> 0"
If Request.Form("field1") <> "" Then
  SQL = SQL & " AND status = " & Request.Form("field1")
End If
If Request.Form("field2") <> "" Then
  SQL = SQL & " AND status2 = " & Request.Form("field2")
End If
Set pris = Conn.Execute(SQL)
Avatar billede biver.dk Nybegynder
13. februar 2006 - 18:15 #5
websam: hvordan skal sådan en function bygges op?

keysersze: vil du forklare det nærmere? forstår det ikke helt....

er ikke den største haj til programmering
Avatar billede keysersoze Ekspert
13. februar 2006 - 20:04 #6
njo - det kan jeg såmen godt... men hvilken af de 3 muligheder skal du have uddybet?
Avatar billede biver.dk Nybegynder
13. februar 2006 - 21:38 #7
er lavet nu.... kom et svar hver især, så får i 100 hver
Avatar billede websam Nybegynder
13. februar 2006 - 21:42 #8
Det skal som bare gøre det som jeg skrev ovenfor tilføje din db connection og så retunere et array med resultaterne fra udtrækket i databasen.

/Websam
Avatar billede keysersoze Ekspert
13. februar 2006 - 23:55 #9
svar :)
Avatar billede keysersoze Ekspert
27. marts 2006 - 11:46 #10
?
Avatar billede keysersoze Ekspert
25. maj 2006 - 12:52 #11
?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester