18. september 2003 - 11:39
Der er
20 kommentarer og 1 løsning
søge funktion, hente poster fra db udfra køn og alder
Jeg skal bruge en søgefunktion til min access db, som henter personprofiler. Søger har følgende 3 muligheder: KØN: han / hun -kun en af delene :-) ALDER: 0-5 år - flere af dem kan vælges 5-10 år 10-20 år 20-30 år 30-40 år 40-50 år 50-? år KUN POSTER INDEHOLDENDE BILLEDER: med / uden
Annonceindlæg fra SuperOffice
18. september 2003 - 11:48
#1
Erstat 'M' og "0 and 5" med de ønskede intervaller: select * from person where koen = 'M' and alder between 0 and 5
18. september 2003 - 12:05
#2
Kan du udpensle det til lidt mere kode med udgangspunkt i følgende: <input type="radio" name="kon" value="han"> <input type="radio" name="kon" value="hun"> <input type="checkbox" name="0-5" value="checkbox"> 0 - 5 år<br> <input type="checkbox" name="5-10" value="checkbox"> 5 - 10 år <br> <input type="checkbox" name="10-20" value="checkbox"> 10 - 20 år</font> osv... <input type="checkbox" name="med" value="checkbox"> vil du bare bruge request.form eller sessions. Kan du ikke skrive lidt mere kode?
18. september 2003 - 12:54
#3
skal den bare vise resultatet nå man åbner siden ?
18. september 2003 - 13:10
#4
ja, posterne skal vises med navn, køn og alder men gerne med kollonen "navn" vist som et link så man kan klikke sig videre til øvrige oplysninger - som du ikke kender :-)
18. september 2003 - 13:14
#5
jamen skal man lave en søgning først ?
18. september 2003 - 13:21
#6
ja, man krydser de felter af (udfra den personprofil man søger) fx. en mand, i alderen 10-20 år og/eller 20-30 år posterne i tabellen "profil" som passer efter søgningen skrives ud navn, alder (hvor navn er et link) navn, alder navn, alder navn, alder
18. september 2003 - 13:25
#7
så skal du have to sider en search.asp og en resulat.asp
jeg vil forslå du gå på
www.asp.dk eller en anden og finder noget der virker og bruger det:-)
18. september 2003 - 14:21
#8
andre med et bud??
18. september 2003 - 15:48
#9
Jeg skal gerne give et bud. Du laver en radio knap for mand/kvinde og eksvis nogle checkbokse for alder. <form action="sog.asp" method="POST"> <radio name="kon" value="m" checked> Mand <radio name="kon" value="k" > Kvinde<br> <input type="alder" value="0-5">0-5 år<br> <input type="alder" value="5-10">5-10 år<br> <input type="alder" value="10-20">10-20 år<br> <input type="alder" value="20-30">20-30 år<br> <input type="alder" value="30-40">30-40 år<br> <input type="alder" value="40-50">40-50 år<br> <input type="alder" value="50">50-?? år<br> <input type="submit" name="send" value="send"> </form> ------------ KODEN for sog.asp <% Set conn = Server.CreateObject("ADODBconnection") conn.Open "CONN STRING til din db" kon = Request.Form("kon") alderList = Request.Form("alder") alderArr = Split(alderList, ",") SQLalder = "" for i = lbound(alderArr) to ubound(alderArr) if SQLalder <> "" then SQLalder = SQLalder & " OR " SQLalder = SQLalder & "(" talArr = Split(alderArr(i),"-") SQLalder = SQLalder & "alder > " & talArr(0) if Ubound(talArr)>1 then SQLalder = SQLalder & " AND alder < " & talArr(1) SQLalder = SQLalder & ")" next SQL = "SELECT * FROM tabel WHERE kon '" & kon & "'" if SQLalder <> "" then SQL = SQL & " AND (" & SQLalder & ")" Set rs = Conn.Execute(SQL) do while not rs.EOF Response.Write "<a href=""brugerinfo.asp?id=" & rs("id") & """>" & rs("navn") & "</a>, " Response.Write "alder " & rs("alder") & "<br>" rs.Movenext loop
18. september 2003 - 17:07
#10
får denne fejl: Syntax error (missing operator) in query expression 'kon 'mand' AND ((alder > 20))'. ved: Set rs = Conn.Execute(SQL)
18. september 2003 - 18:53
#11
ups der mangler et = Prøv at rette denne linje: SQL = "SELECT * FROM tabel WHERE kon '" & kon & "'" Til: SQL = "SELECT * FROM tabel WHERE kon = '" & kon & "'"
18. september 2003 - 19:02
#12
yes...rettet. nu får jeg bare en blank side, men der er poster i db, som passer på søgningen??
18. september 2003 - 19:05
#13
Prøv at tilføje denne linje Response.Write SQL Lige inden denne og vis hvad der står, eller at den SQL sætning ser rigtig ud med AND og OR samt angivelsen af alder... Set rs = Conn.Execute(SQL)
18. september 2003 - 19:05
#14
Det ville måske være en ide at rette: for i = lbound(alderArr) to ubound(alderArr) if SQLalder <> "" then SQLalder = SQLalder & " OR " SQLalder = SQLalder & "(" talArr = Split(alderArr(i),"-") SQLalder = SQLalder & "alder > " & talArr(0) if Ubound(talArr)>1 then SQLalder = SQLalder & " AND alder < " & talArr(1) SQLalder = SQLalder & ")" next Til dette så den søger efter = alder også : for i = lbound(alderArr) to ubound(alderArr) if SQLalder <> "" then SQLalder = SQLalder & " OR " SQLalder = SQLalder & "(" talArr = Split(alderArr(i),"-") SQLalder = SQLalder & "alder >= " & talArr(0) if Ubound(talArr)>1 then SQLalder = SQLalder & " AND alder =< " & talArr(1) SQLalder = SQLalder & ")" next
18. september 2003 - 19:11
#15
Jeg er lidt i tvivl om hvad der skal stå i value i checkboxen? skal der fx stå "10-20"?? til din første kommentar: SELECT * FROM profil WHERE kon = 'mand' AND ((alder > 2030))
18. september 2003 - 19:13
#16
Ja der skal eksvis stå "10-20"
18. september 2003 - 19:17
#17
how jeg ser lige min form ikke er checkbokse sådan en her : <input type="alder" value="10-20">10-20 år<br> Så rettes til: <input type="checkbox" name="alder" value="10-20">10-20 år<br>
18. september 2003 - 19:18
#18
og ret lige denne linje: if Ubound(talArr)>1 then SQLalder = SQLalder & " AND alder < " & talArr(1) Til denne: if Ubound(talArr)>0 then SQLalder = SQLalder & " AND alder < " & talArr(1)
18. september 2003 - 19:31
#19
det lader sgu til at virke!! hvordan klarer jeg den med?? [checkbox] VIS KUN POSTER INDEHOLDENDE BILLEDER: (en kollone i db, som indeholder en billedfil, det kan godt lade sig gøre ikke??)
18. september 2003 - 20:00
#20
Ja det kan det. Du kan tilføje en ny checkbox: <input type="checkbox" name="billede" value="ja">Vi kun med billede Tilføje denne linje oppe hvor man hender kon på samme måde: billede = Request.Form("billede") Udvid deisse linje: SQL = "SELECT * FROM tabel WHERE kon = '" & kon & "'" if SQLalder <> "" then SQL = SQL & " AND (" & SQLalder & ")" til disse: SQL = "SELECT * FROM tabel WHERE kon = '" & kon & "'" if billede <> "" then SQL = SQL & " AND (billedefil is not null) " if SQLalder <> "" then SQL = SQL & " AND (" & SQLalder & ")"
18. september 2003 - 20:31
#21
ja, det kører bare. 1000 tak
Kurser inden for grundlæggende programmering