02. september 2006 - 13:45
Der er
17 kommentarer og 1 løsning
alfa i database asp
hej, jeg har fået et script af en ven, men hvordan får jeg lavet det sådan at jeg kan få vist alle dem der starter med Ta og Se. mvh markus
Annonceindlæg fra Edora
02. september 2006 - 13:46
#1
<% Set Conn3 = Server.CreateObject("ADODB.Connection") DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; " DSN = DSN & "DBQ=" & Server.MapPath("db.mdb") Conn3.Open DSN intPage = Request("page") If isNumeric(intPage) = False Or intPage < 1 Then intPage = 1 End If %> <%Set record = Server.CreateObject("ADODB.RecordSet") Sql3 = "SELECT * FROM film ORDER BY orgtitel ASC" record.Open Sql3,Conn3,1 %> <% str_alfa = LCase(Request.QueryString.Item("alfa")) & UCase(Request.QueryString.Item("alfa")) str_sql2 = "SELECT * FROM film" If Len(str_alfa) < 1 Then str_alfa = "0123456789ABCDEFGHIJKLMNOPQRSTUVWYZÆØÅabcdefghijklmnopqstuuvwxyzæøå" End if str_sql2 = str_sql2 & " WHERE (" for i = 1 to Len(str_alfa) If i <> 1 Then str_sql2 = str_sql2 & " OR" End If str_sql2 = str_sql2 & " orgtitel LIKE '" & Mid(str_alfa,i,1) & "%'" next %>
02. september 2006 - 17:04
#2
Sådan? <% Set Conn = Server.CreateObject("ADODB.Connection") DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; " DSN = DSN & "DBQ=" & Server.MapPath("db.mdb") Conn.Open DSN sql = "SELECT * FROM film WHERE orgtitel LIKE 'Se%' OR orgtitel LIKE 'Ta%' ORDER BY orgtitel ASC" record.Open sql,Conn,1 %>
02. september 2006 - 17:33
#3
nok nærmere - <% Set Conn = Server.CreateObject("ADODB.Connection") DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; " DSN = DSN & "DBQ=" & Server.MapPath("db.mdb") Conn.Open DSN str_alfa = LCase(Request.QueryString.Item("alfa")) & UCase(Request.QueryString.Item("alfa")) strAlfa = left(str_Alfa,2) sql = "SELECT * FROM film WHERE orgtitel LIKE '%" & strAlfa & "%' OR orgtitel LIKE '%" & strAlfa "%' ORDER BY orgtitel ASC" Record.Open sql,Conn,1 Do while not record.EOF Response.write Record("orgtitle")& "<br>" Record.MoveNext Loop %>
02. september 2006 - 17:40
#4
kiddoe> Det giver vist ikke rigtigt mening at have to ens LIKE-led. :^) Og denne her er heller ikke helt sandsynlig: str_alfa = LCase(Request.QueryString.Item("alfa")) & UCase(Request.QueryString.Item("alfa")) strAlfa = left(str_Alfa,2) - når man kigger den efter i sømmene.
02. september 2006 - 17:50
#5
Det frem,går ikke rigtigt af spørgsmålet hvad "alfa" har med søgning på Ta og Se at gøre, men jeg gætter på at det msåke er noget i denne stil: <% Set Conn = Server.CreateObject("ADODB.Connection") DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; " DSN = DSN & "DBQ=" & Server.MapPath("db.mdb") Conn.Open DSN alfa = Request.QueryString.Item("alfa") str_alfa = UCase(Mid(alfa,1,1)) & LCase(Mid(alfa,2,1)) sql = "SELECT * FROM film WHERE orgtitel LIKE '" & str_alfa & "%' ORDER BY orgtitel ASC" record.Open sql,Conn,1 %>
02. september 2006 - 18:33
#6
seføli -
02. september 2006 - 19:45
#7
hejsa, sådan som det er nu kommer alt det op med T og A hvis man skriver alfa=Ta, men jeg skal kun have det der starter med Ta, f.eks. Taxi
02. september 2006 - 19:48
#8
Prøv koden i 02/09-2006 17:50:19. :^) Forresten, er du sikker på at dine Film-titler altid står med stort begyndelsesbogstav? Eller kan der også stå "taxi 3"?
02. september 2006 - 19:55
#9
Pyt med om de står blandet. Denne her burde klare alle tilfælde: <% Set Conn = Server.CreateObject("ADODB.Connection") DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; " DSN = DSN & "DBQ=" & Server.MapPath("db.mdb") Conn.Open DSN sql = "SELECT * FROM film" alfa = LCase("" & Request.QueryString("alfa")) If alfa <> "" Then sql = sql & " WHERE lower(orgtitel) LIKE '" & alfa & "%'" End If sql = sql & " ORDER BY orgtitel ASC record.Open sql,Conn,1 %>
03. september 2006 - 13:43
#10
hej nielle. alle titiler står med stort. men jeg prøvede at sætte din kode ind men kunne ikke få det til at virke.. den siger fejl. ADODB.Recordset error '800a0e79' Operation is not allowed when the object is open. /filmzonen/default.asp, line 358
03. september 2006 - 13:50
#11
Du har nok allerede brugt Conn eller Record tiligere i din kode uden at lukke dem pænt efter brug. Det bør du lige kigge nærmere på. I mellemtiden kan du jo prøve at give dem nogle andre navne i det ovenstående: <% Set Conn7913 = Server.CreateObject("ADODB.Connection") DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; " DSN = DSN & "DBQ=" & Server.MapPath("db.mdb") Conn7913.Open DSN sql = "SELECT * FROM film" alfa = LCase("" & Request.QueryString("alfa")) If alfa <> "" Then sql = sql & " WHERE lower(orgtitel) LIKE '" & alfa & "%'" End If sql = sql & " ORDER BY orgtitel ASC Set record7913 = Server.CreateObject("ADODB.RecordSet") record7913.Open sql,Conn,1 %> Eller msåke var det bare denne linje som manglede: Set record7913 = Server.CreateObject("ADODB.RecordSet") %>
03. september 2006 - 13:56
#12
kunne du evt. skrive hvor den skal sættes ind
03. september 2006 - 13:58
#13
Den er sat ind i den vise kode. Lige over linjen: record7913.Open sql,Conn,1
11. september 2006 - 21:06
#14
Har du fået det til at virke?
20. september 2006 - 21:17
#15
??
21. februar 2007 - 23:08
#16
hejsa nielle, det funkede, smider du et svar?
22. februar 2007 - 12:59
#17
Svar :^)
02. april 2007 - 15:29
#18
Så mangler du bare at acceptere svaret :^)
Kurser inden for grundlæggende programmering