Ok, det här kanske är en jävligt kryptisk fråga, men nu är jag för trött för att tänka själv...
Jag skulle vilja ha en "sökvägs funktion" som brukar finnas på dom flesta forumen, typ:
webForum > Webbrelaterade forum > Webbutveckling > ASP, VBScript
Låt säga att min DB ser ut på följande sätt:
------------------------------------
| ID | subID | title | txt |
------------------------------------
| 1 | 0 | Startsida | Bla bla |
------------------------------------
| 2 | 1 | Om | Bla bla |
------------------------------------
| 3 | 1 | Kontakt | Bla bla |
------------------------------------
| 4 | 2 | Adresser | Bla bla |
------------------------------------
Värdet i "subID" är vilken kategori den posten tillhör. Så i detta fall är alltså "Adresser" en undersida till "Om". Så sökvägen ska se ut som nedan:
Startsida > Om > Adresser
Kan man bygga en funktion som skriver ut en sökväg av ovanstående typ av denna DB struktur?
Tacksam för all hjälp!
Nej, nu är det fan läge för Mr. Blund att dyka upp!
Har INTE testat det här och den är nog ganska krävande, men kul rekursiv kodning :D
function kategori(ID)
subID = 0
SQL = "SELECT ID,subID FROM databas WHERE ID = " & ID
Set RS = Connect.Execute(SQL)
If Not RS.EOF Then
subID = RS("subID")
End If
Set RS = Nothing
If subID > 0 Then
kategori = " OR ID = " & ID" & kategori(subID)
Else
kategori = " OR ID = " & ID
End If
end function
WHR = kategori(4)
SQL = "SELECT ID,subID,title FROM databas WHERE ID = 0" & WHR & " ORDER BY subID"
Set RS = Connect.Execute(SQL)
Do Until RS.EOF
%> > <%=RS("title")%><%
RS.MoveNext
Loop
Set RS = Nothing
' Sätter ID = 0 i where endast för att WHR börjar med OR ;)
Hmm.. kanske var lite onödigt det där..
om du använder det där, lägg så den skriver ut direkt i funktionen istället så slipper man ju den sista SQL-grejen ;)
Function catPath(id)
Set Con = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")
Con.Open DBPATH
pathSubID = 0
SQL = "SELECT ID, subID FROM content WHERE ID = " & id
rs.Open SQL, Con
If NOT rs.EOF Then
pathSubID = RS("subID")
End If
rs.Close
If pathSubID > 0 Then
catPath = " OR ID = " & id & "" & catPath(pathSubID)
Else
catPath = " OR ID = " & id
End If
SQL = "SELECT id, subID, title FROM content WHERE ID = 0 " & catPath & " ORDER BY subID"
rs.Open SQL, Con
Do While NOT rs.EOF
rsID = rs("id")
rsTitle = rs("title")
printContent = ""
If rsID <> id Then
printContent = printContent & "<b>»</b> " & rsTitle & " "
Else
printContent = printContent & "<b>»</b> <a href=""content.asp?subID=" & rsID & """>" & rsTitle & "</a> "
End If
rs.movenext
Loop
Response.Write printContent
rs.Close
Con.Close
Set rs = Nothing
Set Con = Nothing
End Function
Jag bugar och bockar och säger tack så mycket för hjälpen!