Toon posts:

[ASP] Soort sitemap maken

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een volgend probleem ik heb een pagina gemaakt voor mijn cms. Hierin kunnen pagina' op verschillende nivo's staan.

Om weer de pagina's weer te geven gebruik ik lussen voor elk nivo. Dus voor elk nivo maak ik een recordset, en dan kijk ik of daar onder nog weer paginas hangen. Nadeel hiervan is dat maximaal zo diep kan gaan als geprogrammeerd is.

Het liefst wil ik het geheel dynamisch maken maar ik kom er niet uit hoe ik dit voor elkaar moet krijgen. In de database heb ik de volgende gegevens, IDpagina, IDgroep, IDklant, Titel, Inhoud.

Een website heeft altijd 1 home pagina deze heeft een IDpagina met IDgroep = 0 zo weet ik dat dit de eerste pagina is. De pagina hier onder heeft bij IDgroep de IDpagina van de home pagina staan. Zo kan ik achterhalen of er nog een pagina onder zit.

Nu wil ik dus een lus maken die elke keer zelf kijkt of er nog wat onder zit, zodat je dus oneindig paginas er onder kan hangen. Heeft iemand een idee om dit aan te pakken. Ik heb verschillende dingen geprobeerd maar helaas lukt het steeds niet.

alvast bedankt,
bob

  • akakiwi
  • Registratie: September 2000
  • Laatst online: 20-03 11:13

akakiwi

I believe in the ruling class.

Je moet dat recursief aanpakken en wel op de volgende manier.
Breid je tabel uit met een ParentId, welke naar een reeds bestaand Id wijst voor IDpagina.
Daarin bouw je dus je boomstructuur op als volgt.
code:
1
2
3
4
5
6
7
IDPagina | ParentId
------------------------------
1        | -1
2        | -1
3        | 1
4        | 1
5        | 4

Dat komt er dus als volgt uit te zien:
code:
1
2
3
4
5
1
  3
  4
    5
2


Een functie om dit weer te geven zou de volgende kunnen zijn:
code:
1
2
3
4
5
6
7
8
function boomStructuur(a AS String, b AS Int)
  SQL = "SELECT * FROM TBL_Paginas WHERE ParentId = " & b
'  uitvoeren
  while NOT oRs.EOF
    boomstructuur(a, NIEUWE b)
    oRs.movenext
  wend
end function

| Life is a game (and games are fun) | homepage |


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 13:28

gorgi_19

Kruimeltjes zijn weer op :9

Waarbij ik me alleen afvraag of je je database zo zwaar moet belasten en niet beter alles eerst in een array of kan plaatsen en deze blijven doorlopen.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
akakiwi schreef op 02 januari 2004 @ 12:28:
Je moet dat recursief aanpakken en wel op de volgende manier.
Breid je tabel uit met een ParentId, welke naar een reeds bestaand Id wijst voor IDpagina.
Daarin bouw je dus je boomstructuur op als volgt.
code:
1
2
3
4
5
6
7
IDPagina | ParentId
------------------------------
1        | -1
2        | -1
3        | 1
4        | 1
5        | 4

Dat komt er dus als volgt uit te zien:
code:
1
2
3
4
5
1
  3
  4
    5
2


Een functie om dit weer te geven zou de volgende kunnen zijn:
code:
1
2
3
4
5
6
7
8
function boomStructuur(a AS String, b AS Int)
  SQL = "SELECT * FROM TBL_Paginas WHERE ParentId = " & b
'  uitvoeren
  while NOT oRs.EOF
    boomstructuur(a, NIEUWE b)
    oRs.movenext
  wend
end function
Die parentID dat is dus bij ons IDgroep. Ben nu even aan het stoeien met de code. En het werkt :D

Nou zou het ook nog mooi zijn dat als je het aanroept dat elke keer als het nivo dieper gaat er een spatie of een cel van een tabel voor komt?

[ Voor 9% gewijzigd door Verwijderd op 02-01-2004 12:43 ]


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 13:28

gorgi_19

Kruimeltjes zijn weer op :9

Dan voeg je nog een functie Level toe aan je functie
En bij de aanroep in een functie doe je level + 1

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Hier is een voorbeeld hoe je dit kunt oplossen

Oops! Google Chrome could not find www.rijks%20museum.nl


Verwijderd

Topicstarter
dankjewel allemaal dit is allemaal erg bruikbaar :D

  • Skaah
  • Registratie: Juni 2001
  • Niet online
http://195.241.118.101/sitemap.php
Is in PHP, maar bijna precies op de manier van @akakiwi opgebouwd, zelfs de kolomnamen zijn identiek!
Pagina: 1