Avatar billede bobbedude Nybegynder
06. juli 2006 - 09:54 Der er 12 kommentarer og
1 løsning

hvor er jeg eller Breadcrum

jeg ved ikke lige hvad man kalder det men jeg har en db med kategorier i der er et ID og et ParentID når man så klikker sig vej gennem kategorierne vil jeg gerne vise i toppen.

Hjem - Folder1 - Folder2 - Du er her nu
Avatar billede nielle Nybegynder
06. juli 2006 - 10:38 #1
Noget i denne stil:

<%
breadcrumb = ""
breadcrumbId = Request.QueryString("id")  ' Det id du er på til at starte med

While Not breadcrumbId = -1  ' Eller med den værdi som passer til netop din tabel
    sql = "SELECT menuNavn, parentId FROM dinMenuTabel WHERE id=" & breadcrumbId
    Set rs = Conn.Execute(sql)

    If breadcrumb <> "" Then
        breadcrumb = " - " & breadcrumb
    End If

    breadcrumb = rs("menuNavn") & breadcrumb

    breadcrumbId = rs("parentId")
Loop

Response.Write breadcrumb
%>
Avatar billede bobbedude Nybegynder
06. juli 2006 - 10:48 #2
Har lige ændret den til at passe til min db

breadcrumb = ""
breadcrumbId = Request.QueryString("ID")

While Not breadcrumbId = -1
    sql = "SELECT FolderName, Parent FROM GCat WHERE ID=" & breadcrumbId
    Set rs = Connect.Execute(sql)

    If breadcrumb <> "" Then
        breadcrumb = " - " & breadcrumb
    End If

    breadcrumb = rs("menuNavn") & breadcrumb

    breadcrumbId = rs("parentId")
Loop

Response.Write breadcrumb


Den giver dog en fejl i linie:

Loop

loop with out do
Avatar billede nielle Nybegynder
06. juli 2006 - 10:51 #3
Ret:

While Not breadcrumbId = -1

- til:

Do While Not breadcrumbId = -1
Avatar billede bobbedude Nybegynder
06. juli 2006 - 10:53 #4
breadcrumb = ""
breadcrumbId = Request.QueryString("ID")

If breadcrumbId <> "" Then
Else
    breadcrumbId = 0
end If

Do While Not breadcrumbId = -1
    sql = "SELECT FolderName,Parent FROM GCat WHERE ID=" & breadcrumbId
    Set rs = Connect.Execute(sql)

    If breadcrumb <> "" Then
        breadcrumb = " - " & breadcrumb
    End If

    breadcrumb = rs("FolderName") & breadcrumb

    breadcrumbId = rs("Parent")
Loop

Response.Write breadcrumb


men får fejlen:

fejl '80020009'
Undtagelse opstod.

/galleri.asp, linje 43

breadcrumb = rs("FolderName") & breadcrumb
Avatar billede nielle Nybegynder
06. juli 2006 - 11:03 #5
Hvuklen type er dit FolderName-felt i din GCat-tabel?
Avatar billede bobbedude Nybegynder
06. juli 2006 - 11:03 #6
text
Avatar billede bobbedude Nybegynder
06. juli 2006 - 11:07 #7
er det ikke fordi den spørger efter et id der er 0
Avatar billede nielle Nybegynder
06. juli 2006 - 11:07 #8
Det er nok vildt overkill i forhold til hvor meget tekst du i realiteten har i dine menunavne. Og så er det iøvrigt årsagen til at du får den fejl i dette tilfælde:

http://www.aspfaq.com/show.asp?id=2421

Prøv at lave den om til en VARCHAR(20). Jeg gætter på at det er langt nok med 20 tegn.
Avatar billede bobbedude Nybegynder
06. juli 2006 - 11:12 #9
nu er det ikke en MySql eller en MSSql men en Access og det længste navn er Sommer
Avatar billede nielle Nybegynder
06. juli 2006 - 11:17 #10
Ok, for hurtig til at antage der.

Prøv at bytte om på rækkefølgen:

sql = "SELECT Parent, FolderName FROM GCat WHERE ID=" & breadcrumbId
Avatar billede bobbedude Nybegynder
06. juli 2006 - 11:21 #11
SELECT Parent,FolderName FROM GCat WHERE ID=63SELECT Parent,FolderName FROM GCat WHERE ID=0
ADODB.Field fejl '800a0bcd'

Enten er BOF eller EOF sand, eller den aktuelle post er blevet slettet. Den anmodede handling kræver en aktuel post.

/galleri.asp, linje 41

jeg har jo ikke noget ID der er 0
Avatar billede bobbedude Nybegynder
06. juli 2006 - 11:22 #12
Do While Not breadcrumbId = 0

så virker det, smid et svar :)
Avatar billede nielle Nybegynder
06. juli 2006 - 11:24 #13
Svar :^)
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