Avatar billede m0204 Nybegynder
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 ? :-)
Avatar billede bojohansen Nybegynder
16. juni 2004 - 23:07 #1
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
Avatar billede pfp Nybegynder
16. juni 2004 - 23:11 #2
Vis lidt kode..
Avatar billede m0204 Nybegynder
16. juni 2004 - 23:12 #3
<%
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>
Avatar billede pfp Nybegynder
16. juni 2004 - 23:14 #4
<%
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
%>
Avatar billede m0204 Nybegynder
16. juni 2004 - 23:15 #5
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...
Avatar billede pfp Nybegynder
16. juni 2004 - 23:15 #6
Du kan så sortere faldende eller stigende ved at tilføje henholdsvis DESC og ASC i enden SQL strengen.
Avatar billede m0204 Nybegynder
16. juni 2004 - 23:17 #7
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
Avatar billede bojohansen Nybegynder
16. juni 2004 - 23:21 #8
<%
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)
Avatar billede pfp Nybegynder
16. juni 2004 - 23:21 #9
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...
Avatar billede m0204 Nybegynder
16. juni 2004 - 23:23 #10
Hvilken en er bedst? Den fra pfp eller bojohansen?
Avatar billede pfp Nybegynder
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.
Avatar billede m0204 Nybegynder
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?
Avatar billede bojohansen Nybegynder
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.
Avatar billede pfp Nybegynder
16. juni 2004 - 23:28 #14
bojohansen kom også først..
Avatar billede bojohansen Nybegynder
16. juni 2004 - 23:28 #15
Yep, så længe at du lægger linket ind som

Sortering=Database_Feldt_Navn
Avatar billede bojohansen Nybegynder
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"
Avatar billede m0204 Nybegynder
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?
Avatar billede m0204 Nybegynder
16. juni 2004 - 23:34 #18
Ahh har rettet fejlen ved linket ... dvds.asp?sortby=Titel
Avatar billede pfp Nybegynder
16. juni 2004 - 23:36 #19
Har du fået det til at virke så?
Avatar billede m0204 Nybegynder
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.
Avatar billede bojohansen Nybegynder
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.
Avatar billede pfp Nybegynder
16. juni 2004 - 23:38 #22
Det ser jo ud til at fungere.
Avatar billede m0204 Nybegynder
16. juni 2004 - 23:41 #23
Så kommer det vigtigste jo ... point ... hvad vil i have? :-)
Avatar billede pfp Nybegynder
16. juni 2004 - 23:42 #24
.
Avatar billede bojohansen Nybegynder
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
Avatar billede m0204 Nybegynder
16. juni 2004 - 23:44 #26
Ahh det virker ikke helt da ... Prøv nu ...
Avatar billede pfp Nybegynder
16. juni 2004 - 23:46 #27
Du skal putte ASC eller DESC på dine SQL sætninger alt efter hvad du vil...
Avatar billede bojohansen Nybegynder
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 ;-)
Avatar billede m0204 Nybegynder
16. juni 2004 - 23:47 #29
Ja det har jeg også nu .. Synes bare ikke det virker :-/
Avatar billede m0204 Nybegynder
16. juni 2004 - 23:48 #30
http://www.bkhansen.dk/dvd/dvds.asp?sortby=OrgTitel
aaa
ddd
ccc
bbb

Det er ikke alfabetisk jo hehe
Avatar billede m0204 Nybegynder
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
Avatar billede pfp Nybegynder
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.
Avatar billede m0204 Nybegynder
16. juni 2004 - 23:54 #33
Kan i se problemet?
Avatar billede bojohansen Nybegynder
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
Avatar billede m0204 Nybegynder
17. juni 2004 - 00:01 #35
Nu er der en ASC på OrgTitel
Avatar billede bojohansen Nybegynder
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.
Avatar billede m0204 Nybegynder
17. juni 2004 - 00:10 #37
hehe ok ... Jeg kan heller ikke se det... Hvad med dig PFP?
Avatar billede pfp Nybegynder
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..
Avatar billede m0204 Nybegynder
17. juni 2004 - 00:16 #39
Nu virker det ...
Skal jeg dele point mellem jer eller ?
Han skakkede om 30 point?
Avatar billede pfp Nybegynder
17. juni 2004 - 00:33 #40
Del lidt point mellem bo og mig og tag resten selv.
Avatar billede m0204 Nybegynder
17. juni 2004 - 00:58 #41
Okay .. Takker for hjælpen
Avatar billede pfp Nybegynder
17. juni 2004 - 01:17 #42
Det var så lidt.
Avatar billede bojohansen Nybegynder
17. juni 2004 - 14:57 #43
Tak for points
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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