Avatar billede styrbaek Nybegynder
30. august 2001 - 15:19 Der er 4 kommentarer og
1 løsning

links opdelt i kategorier

Jeg er ved at lave et linkindex som er opdelt i kategorier. I min Accessdb har jeg en table med kategorierne og en table med links. Linktablen indeholder bla. et kategorifeldt som indeholder et id-nummer fra en kategori i kategoritablen.

Nu skal de to tabels så kørers samme på en linkside, så der først står kategori#1 og så de tilhørende links - Kategori#2 og de tilgørende links osv....

Mit problem er at få flettet de 2 databaseudtræk sammen.
Jeg har før lavet et lignende script hvor kategorierne lå i et array, men det her kan jeg ikke lige overskue.
Avatar billede keysersoze Ekspert
30. august 2001 - 15:26 #1
et eksempel:

<%

set conn = Server.CreateObject(\"ADODB.Connection\")
conn.Open \"Driver={Microsoft Access Driver (*.mdb)}; DBQ=\" & Server.MapPath(\"scart.mdb\")
set conn2 = Server.CreateObject(\"ADODB.Connection\")
conn2.Open \"Driver={Microsoft Access Driver (*.mdb)}; DBQ=\" & Server.MapPath(\"scart.mdb\")
Katid=Trim(Replace(Request(\"katid\"),\"\'\",\"\"))
SQL = \"select * from Produckname order by Productname\"
Set RS = Conn.Execute(SQL)
    if not (rs.BOF or rs.EOF) then
        do while not rs.EOF
            SQL2 = \"select * from products where PNCategory=\" & rs(\"NameId\") & \" and ccategory=\" & Katid & \" order by cname\"
            Set RS2 = Conn2.Execute(SQL2)
                if not (rs2.BOF or rs2.EOF) then
                Response.Write \"<div align=\'center\'>\"
                Response.Write \"<center>\"
                Response.Write \"<table border=\'0\' cellspacing=\'2\' width=\'690\' bgcolor=\'#8DABD5\'>\"
                Response.Write \"<tr><td width=\'650\' bgcolor=\'#FFCC00\'><p align=\'left\'>\" & RS(\"Productname\") & \"</td></tr>\"
                    Do While Not RS2.EOF
                          Response.Write \"<tr><td width=\'650\' bgcolor=\'#8DABD5\'><p align=\'left\'>\" & RS2(\"cname\") & \"</td></tr>\"
                    RS2.MoveNext
                    Loop
                Response.Write \"</table>\"
                Response.Write \"</center>\"
                Response.Write \"</div>\"
                Response.Write \"<br>\"
                end if
            RS2.Close
        rs.movenext
        loop
    end if
RS.Close
Conn.Close
Conn2.Close

%>
Avatar billede styrbaek Nybegynder
30. august 2001 - 16:21 #2
Jeg må indrømme at det ser godt nok noget  uoverskueligt ud, kan det ikke gøre på en mere enkel måde?
Avatar billede keysersoze Ekspert
30. august 2001 - 16:23 #3
jo - tabellerne kan fjernes...
Avatar billede styrbaek Nybegynder
30. august 2001 - 17:39 #4
Jeg har studeret et par andre linkscripts og er nået frem til følgende løsninger som efter min mening er mere enkel.

SQLkat = \"select * from Kategori order by Kategorinavn\"
      set RSkat = objConn.execute(SQLkat)
     

while not RSkat.eof
    set RSlink = objconn.execute(\"select * from Links where kategoriid = \" & RSkat(\"katid\") & \"\")
    response.write RSkat(\"kategorinavn\") & \"<br>\"
    if RSlink.bof then
    response.write \"der er ingen links i denne kategori<br>\"
    end if
    while NOT RSlink.eof
    response.write RSlink(\"url\") & \"<br>\"
    RSlink.movenext
    wend
    RSkat.movenext
    wend
   
    objConn.Close
    Set objConn = Nothing

Du får nu alligevel  30 point for dit forslag.  :-)
Avatar billede styrbaek Nybegynder
30. august 2001 - 17:40 #5
Hov det var da 60 point,.... nå pyt 
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