Avatar billede werd Nybegynder
03. april 2003 - 20:59 Der er 5 kommentarer og
1 løsning

søg i asp 'like'

Hvordan laver man en søgning i hele databasen? Der hvor der nu står 'felt' skal der være en værdi der gør så den søger i hele databasen, hvordan gøres dette?

Select * from tabel where felt LIKE '%søgeord%' order by Navn
Avatar billede hossein Nybegynder
03. april 2003 - 21:30 #1
Hvis det er simpel Søgning i DB, så SQL sætning ser sådan ud:
strSQL = "SELECT Fornavn, Efternavn, Postdist" _
        & "FROM sample " _
        & "WHERE Fornavn LIKE '%" & Replace(strSearch, "'", "''") & "%' " _
        & "OR Efternavn LIKE '%" & Replace(strSearch, "'", "''") & "%' " _
        & "ORDER BY Efternavn"

Hvor strSearch er navnet på Tekstboksen i formen (f ex)
Avatar billede soes Nybegynder
03. april 2003 - 21:32 #2
Uden at vaere 100% sikker saa tror jeg ikke at det kan lade sig goere at skrive et stykke sql som selv finder ud af hvor mange tabeller der er i din database, og herefter laver et select paa dem alle sammen.

Du kan maaske lave en loesning som arbejder med ADO der henter de forskellige tabellers navn og de dertilhoerende kollonner og saa opbygger en sql statement som du kan bruge. Hvordan dette skal goeres har jeg ikke nogle ide om da jeg ikke har gjort det foer, men hvis du vil have nogen til at lave en saadan loesning bliver du nok noed til at smide flere point i hatten, hvis du vil have det loest.

En anden mulighed er at du skriver alt din sql manuelt men det er jo op til dig
Avatar billede hossein Nybegynder
03. april 2003 - 21:44 #3
Jeg tror han mener søgning i tabel, en database indeholder en eller flere tabeller osv.
en god source kode for at studere kan hentes herfra:
http://activedeveloper.dk/download/default.asp?mode=showdownload&id=176
Avatar billede werd Nybegynder
04. april 2003 - 14:41 #4
jeg har fundet frem til følgende:

lige = "LIKE '%" & Request.form("sog") & "%'"
sql = "select * from Navne"
Set rs = Conn.Execute(sql)
sql = "Select * from navne where "
For each head IN rs.Fields
sql = sql&" or " & head.name & " "&lige
next
sql = sql&" order by Navn"

og det giver følgende resultat:
Select * from navne where or ID LIKE '%test%' or Navn LIKE '%test%' or Efternavn LIKE '%test%' or Adresse LIKE '%test%' or Postnr LIKE '%test%' or By LIKE '%test%' or Email LIKE '%test%' or Url LIKE '%test%' or Fodselsdag LIKE '%test%' or Telefon LIKE '%test%' or Mobil LIKE '%test%' or Gruppe LIKE '%test%' order by Navn

__

men som det ses skriver den allerede or første gang hvilket gør sql-sætningen ugyldig... hvordan undlader man det første loop... i en søgning behøver man jo ikke søge i ID kolonnen :)
Avatar billede werd Nybegynder
04. april 2003 - 14:51 #5
den endelige sql-sætning ser således sådan ud:
-----

sql= "Select * from navne where Navn LIKE '%" & Request.form("sog") & "%' or Efternavn LIKE '%" & Request.form("sog") & "%' or Adresse LIKE '%" & Request.form("sog") & "%' or Postnr LIKE '%" & Request.form("sog") & "%' or By LIKE '%" & Request.form("sog") & "%' or Email LIKE '%" & Request.form("sog") & "%' or Url LIKE '%" & Request.form("sog") & "%' or Fodselsdag LIKE '%" & Request.form("sog") & "%' or Telefon LIKE '%" & Request.form("sog") & "%' or Mobil LIKE '%" & Request.form("sog") & "%' or Gruppe LIKE '%" & Request.form("sog") & "%' order by Navn"

-----

Den som med mindst mulig kode kan generere dette får pts!
Avatar billede werd Nybegynder
08. april 2003 - 20:37 #6
hmm - lukket
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