Avatar billede no_doubt Nybegynder
25. juni 2006 - 00:36 Der er 9 kommentarer og
1 løsning

problem ved søgning

Hvordan undgår jeg at få 3 udfald ved søgning på eksempelvis mark, grunden er at markm står i brugernavn, mark står i navn, og mark står i email i databasen.

Jeg ønsker kun ET udfald selvom jeg findes i 3 kolonner.

koden ser ud som følger

<%
sog = request.form("soeg")
response.write felt
Set conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("db.mdb")
Sql =  "SELECT distinct * FROM bruger WHERE (brugernavn LIKE '%" & sog & "%' or navn like '%" & sog & "%' or mail like '%" & sog & "%' or fodselsdag like '%" & sog & "%' or bynavn like '%" & sog & "%' or postnr like '%" & sog & "%' or profilbillede like '%" & sog & "%')"
Set rs = Conn.Execute(sql)
if rs.EOF or rs.BOF then
response.write "Ingen med de indtastede oplysninger"
else
Do While Not rs.EOF
%>
<%
birth = rs("fodselsdag")
aar = datediff("yyyy",birth,date)
temp = dateadd("yyyy",aar,birth)
if datediff("d",temp,birth)<0 then aar = aar - 1
%>
<b><font face="Arial" size="2">
<a href="default.asp?menu=VisProfil&id=<%=rs("id")%>">
<span style="text-decoration: none"><font color="#000000"><%=rs("navn")%> - <%=aar & " år"%> - <%=rs("postnr")%>&nbsp;<%=rs("bynavn")%></font></span></a></font></b><br>
<%
rs.movenext
loop
end if
%>
Avatar billede jokkejensen Novice
25. juni 2006 - 02:24 #1
hey ... har jeg forstået dig korrekt - kan "limit 1" til sidt i sql sætninge tvinge den til ku at vise en post ...

Er jeg galt på den ?
Avatar billede nielle Nybegynder
25. juni 2006 - 10:08 #2
DISTINCR bruges hvis der er dubletter af den samme post; Med mindre at du har flere poster ofer den samme bruger i din database, så er det ikke den du skal bruge.

Hvis det kun er én post du ønsker at få ud, så skal du bruge TOP 1 i stedet:

Sql =  "SELECT TOP 1 * FROM bruger WHERE brugernavn LIKE '%" & sog & "%' OR navn LIKE '%" & sog & "%' OR mail LIKE '%" & sog & "%' OR fodselsdag LIKE '%" & sog & "%' OR bynavn LIKE '%" & sog & "%' OR postnr LIKE '%" & sog & "%' OR profilbillede LIKE '%" & sog & "%'"
Avatar billede no_doubt Nybegynder
25. juni 2006 - 11:25 #3
sorry, der kan sagtens komme flere poster, så hverken top 1 eller limit kan bruges... og distinct har jeg problemer med......
Avatar billede nielle Nybegynder
25. juni 2006 - 12:04 #4
Du må vist hellere forklare lidt nærmere om hvad problemet er ... helst med nogle flere eksempler.
Avatar billede no_doubt Nybegynder
25. juni 2006 - 12:42 #5
jeg synes det er forklaret i spm

jeg har nogle forskellige data i min database.... hvor mark indgår, hvis jeg så søger på mark vil jeg kun have et udslag per id
Avatar billede nielle Nybegynder
25. juni 2006 - 17:29 #6
Siden at jeg spørger, så er jeg nok ikke enig med dig i at det er forklaret godt nok. jokkejensen lydder heller ikke for sikker på at han har forstået spørgsmålet...

Din SQL-sætning:

Sql =  "SELECT DISTINCT * FROM bruger WHERE brugernavn LIKE '%" & sog & "%' OR navn LIKE '%" & sog & "%' OR mail LIKE '%" & sog & "%' OR fodselsdag LIKE '%" & sog & "%' OR bynavn LIKE '%" & sog & "%' OR postnr LIKE '%" & sog & "%' OR profilbillede LIKE '%" & sog & "%'"

- bør ikke give dig dubletter. I hvert fald ikke hvis der ikke allerede er flere poster på samme bruger i din bruger-tabel.
Avatar billede no_doubt Nybegynder
26. juni 2006 - 23:22 #7
løst, svar ?
Avatar billede nielle Nybegynder
27. juni 2006 - 06:40 #8
Nej tak til point på denne her. Du løste den jo åbenbart selv. Men ellers tak for tilbudet. :^)

Kunne dog godt tænke mig at se hvad løsningen var?
Avatar billede no_doubt Nybegynder
27. juni 2006 - 08:00 #9
grimt nok var det en gammel bruger database, så der var dupletter
Avatar billede nielle Nybegynder
27. juni 2006 - 17:24 #10
Så lad os dele :^)
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