16. juni 2004 - 23:00
Der er
40 kommentarer og 3 løsninger
Asp kode der kan sortere efter fx. GENRE
Hejsa, se først på dette link:
http://www.bkhansen.dk/dvd/dvds.asp Vil gerne have en kode der kan sortere efter fx. genre og alle de andre overskrifter (IKKE IMDBLink) ... Alfabetisk :-)
Kan dette lade sig gøre ? :-)
Annonceindlæg fra Publicis Sapient
DVD Film - Tilbage til admin Titel Dansk Titel Genre Medie Antal Link til IMDB ADODB.Recordset error '800a0cc1' Item cannot be found in the collection corresponding to the requested name or ordinal. /dvd/dvds.asp, line 37
<% Dim Conn, MyConnection, MySQL, FilmRS Set Conn = Server.CreateObject("ADODB.connection") Set FilmRS = Server.CreateObject("ADODB.Recordset") MyConnection = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ="& Server.MapPath("dvdsdb.mdb") Conn.Open MyConnection FilmRS.open "Select * FROM DVDs", Conn, 3,3,1 %> </p> <table width="100%" border="0" align="center"> <tr bgcolor="#CCCCCC"> <td>Titel</td> <td>Dansk Titel</td> <td>Genre</td> <td>Medie</td> <td>Antal </td> <td>Link til IMDB</td> </tr> <tr> <% while not FilmRS.eof %> <td width="277"><% response.write FilmRS("OrgTitel")%> </td> <td width="197"><% response.write FilmRS("DKTitel")%> </td> <td width="147"><% response.write FilmRS("Genre")%> </td> <td width="79"><% response.write FilmRS("Medie")%> </td> <td width="80"> <% response.write FilmRS("AntalDVDs")%> </td> <td width="179"><a href="<% response.write FilmRS("IMDBLink")%>" target="_blank"> <% response.write FilmRS("IMDBLink")%> </a></td>
<% Dim Conn, MyConnection, MySQL, FilmRS Set Conn = Server.CreateObject("ADODB.connection") Set FilmRS = Server.CreateObject("ADODB.Recordset") MyConnection = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ="& Server.MapPath("dvdsdb.mdb") Conn.Open MyConnection FilmRS.open "Select * FROM DVDs ORDER BY det_felt_du_vil_sortere_efter", Conn, 3,3,1 %>
Jeps ... Men vil gerne have det sådan, at når man trykker på GENRE .. Så sortere den efter GENRE ... Og det samme med de andre...
Du kan så sortere faldende eller stigende ved at tilføje henholdsvis DESC og ASC i enden SQL strengen.
Jeps i know ... Men vil gerne have det GENRE til at være et link ... når man trykker på GENRE, så sortere den DESC ... Når du trykker igen, sortere den efter ASC
<% Dim Conn, MyConnection, MySQL, FilmRS Set Conn = Server.CreateObject("ADODB.connection") Set FilmRS = Server.CreateObject("ADODB.Recordset") MyConnection = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ="& Server.MapPath("dvdsdb.mdb") Conn.Open MyConnection If Request.Querystring("Sortering") = "" Then Sortering = "IMBD" Else Sortering = Request.Querystring("Sortering") End If FilmRS.open "Select * FROM DVDs Order by " & Sortering & " ASC", Conn, 3,3,1 %> Lav så et link på jeres : Titel Dansk Titel Genre Medie Antal Link til IMDB noget lignende dvds.asp?Sortering=Titel (Skal være navnet på jeres feldt i databasen) dvds.asp?Sortering=DanskTitel (Skal være navnet på jeres feldt i databasen)
aah okay, så er det lidt mere avanceret. Du laver et link på de overskrifter man skal kunne sortere på der hedder fx dinfil.asp?sortby=genre Du laver så forskellige SQL sætninger ud fra hvad du har som værdi i din querystring. <% Dim Conn, MyConnection, MySQL, FilmRS Set Conn = Server.CreateObject("ADODB.connection") Set FilmRS = Server.CreateObject("ADODB.Recordset") MyConnection = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ="& Server.MapPath("dvdsdb.mdb") Conn.Open MyConnection sortby = Request.Querystring("sortby") If sortby = "genre" then SQL = "Select * FROM DVDs ORDER BY Genre" elseif sortby = "titel" then SQL = "Select * FROM DVDs ORDER BY titel" else SQL = "Select * FROM DVDs ORDER BY noget_andet" End if FilmRS.open SQL, Conn, 3,3,1 %> Kan du se pointen? Ovenstående tager dog ikke forhold for ASC og DESC, men det burde du selv kunne implementere nu...
16. juni 2004 - 23:23
#10
Hvilken en er bedst? Den fra pfp eller bojohansen?
16. juni 2004 - 23:25
#11
Vores gør nøjagtig det samme. Ingen af dem skifter til modsat sortering når man klikker igen.
16. juni 2004 - 23:26
#12
Okay ... men de gør vel det at hvis man først klikker på Titel .. så sortere den efter titel ... hvis man så klikker igen, sker der ikke noget, hvis man så klikker på GENRE, så sortere den efter genre?
16. juni 2004 - 23:27
#13
Tjaaaa det er op til dig, men altid lav så lidt kode som muligt. De gør nøjagtigt det samme, bare den ene med mindre kode.
16. juni 2004 - 23:28
#14
bojohansen kom også først..
16. juni 2004 - 23:28
#15
Yep, så længe at du lægger linket ind som Sortering=Database_Feldt_Navn
16. juni 2004 - 23:31
#16
If Request.Querystring("Sortering") = "" Then Sortering = "IMBD" Denne linie bestemmer så hvilket feldt som er det der vises som default hvis der ikke er klikket på et link : If Request.Querystring("Sortering") = "" Then Sortering = "Dit_Default_DB_FeldtNavn"
16. juni 2004 - 23:31
#17
<% Dim Conn, MyConnection, MySQL, FilmRS Set Conn = Server.CreateObject("ADODB.connection") Set FilmRS = Server.CreateObject("ADODB.Recordset") MyConnection = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ="& Server.MapPath("dvdsdb.mdb") Conn.Open MyConnection sortby = Request.Querystring("sortby") If sortby = "OrgTitel" then SQL = "Select * FROM DVDs ORDER BY OrgTitel" elseif sortby = "Genre" then SQL = "Select * FROM DVDs ORDER BY Genre" else SQL = "Select * FROM DVDs ORDER BY AntalDVDs" End if FilmRS.open SQL, Conn, 3,3,1 %> </p> <table width="100%" border="0" align="center"> <tr bgcolor="#CCCCCC"> <td><a href="sortby=OrgTitel">Titel</a></td> <td><a href="sortby=DKTitel">Dansk Titel</a></td> <td><a href="sortby=Genre">Genre</a></td> <td><a href="sortby=Medie">Medie</a></td> <td><a href="sortby=AntalDVDs">Antal</a> </td> <td>Link til IMDB</td> </tr> <tr> <% while not FilmRS.eof %> <td width="277"><% response.write FilmRS("OrgTitel")%> </td> <td width="197"><% response.write FilmRS("DKTitel")%> </td> <td width="147"><% response.write FilmRS("Genre")%> </td> <td width="79"><% response.write FilmRS("Medie")%> </td> <td width="80"> <% response.write FilmRS("AntalDVDs")%> </td> <td width="179"><a href="<% response.write FilmRS("IMDBLink")%>" target="_blank"> <% response.write FilmRS("IMDBLink")%> </a> Er dette helt forkert?
16. juni 2004 - 23:34
#18
Ahh har rettet fejlen ved linket ... dvds.asp?sortby=Titel
16. juni 2004 - 23:36
#19
Har du fået det til at virke så?
16. juni 2004 - 23:37
#20
http://www.bkhansen.dk/dvd/dvds.asp I må gerne lige hjælpe med at teste ... :-)
Titel, Dansk Titel, Genre og medie er lavet så man kan sortere efter dem.
16. juni 2004 - 23:38
#21
Det ser ud til at virke fint, men overvej kun at skrive en SQL sætning i din kode..........jo mere unødvendig kode, jo mere unødvendig vedlikehold senere hen ved små ændringer/tilføjelser i databasen.
16. juni 2004 - 23:38
#22
Det ser jo ud til at fungere.
16. juni 2004 - 23:41
#23
Så kommer det vigtigste jo ... point ... hvad vil i have? :-)
16. juni 2004 - 23:42
#24
.
16. juni 2004 - 23:42
#25
Nej, jeg er glad for 30, det er ret simpelt og efter min mening ikke noget jeg vil have 120 points for
16. juni 2004 - 23:44
#26
Ahh det virker ikke helt da ... Prøv nu ...
16. juni 2004 - 23:46
#27
Du skal putte ASC eller DESC på dine SQL sætninger alt efter hvad du vil...
16. juni 2004 - 23:47
#28
Jo det virker, men du mangler at putte ASC eller DESC på enden af din SQL, ville være dejligt hvis du kun skulle gøre dette på en SQL sætning ;-)
16. juni 2004 - 23:47
#29
Ja det har jeg også nu .. Synes bare ikke det virker :-/
16. juni 2004 - 23:48
#30
16. juni 2004 - 23:49
#31
If sortby = "OrgTitel" then SQL = "Select * FROM DVDs ORDER BY OrgTitel DESC" elseif sortby = "Genre" then SQL = "Select * FROM DVDs ORDER BY Genre DESC" else SQL = "Select * FROM DVDs ORDER BY DKTitel DESC" End if
16. juni 2004 - 23:49
#32
bo -> han kan jo bare gøre sådan her: FilmRS.open SQL & " ASC", Conn, 3,3,1 Så er det også kun et sted ;) Men ja jeg vil give dig ret i at det havde været smartere med en sql sætning.
16. juni 2004 - 23:54
#33
Kan i se problemet?
16. juni 2004 - 23:57
#34
pfp --> Helt korrekt, havde jeg ikke set. Ja jeg ser problemet, men hvorfor............. det er kun på OrgTitel............. mystisk. Prøv lige at lægge en ASC på istedet for
17. juni 2004 - 00:01
#35
Nu er der en ASC på OrgTitel
17. juni 2004 - 00:09
#36
Huh, det ved jeg simpelthen ikke, lige så snart det starter med 2 A'er så sortere databasen forkert, hvis der kun er 1 A i starten så er det fint. Aner det ikke. Må sove nu.
17. juni 2004 - 00:10
#37
hehe ok ... Jeg kan heller ikke se det... Hvad med dig PFP?
17. juni 2004 - 00:14
#38
Hmm kan umiddelbart ikke se det...det skulle da lige være fordi den tolker 'aa' som 'å', men det kan jeg næsten ikke tro..
17. juni 2004 - 00:16
#39
Nu virker det ... Skal jeg dele point mellem jer eller ? Han skakkede om 30 point?
17. juni 2004 - 00:33
#40
Del lidt point mellem bo og mig og tag resten selv.
17. juni 2004 - 00:58
#41
Okay .. Takker for hjælpen
17. juni 2004 - 01:17
#42
Det var så lidt.
17. juni 2004 - 14:57
#43
Tak for points
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.