[ASP] sql / recordset vraag

Pagina: 1
Acties:

  • faabman
  • Registratie: Januari 2001
  • Laatst online: 08-08-2024
Ik ben bezig met het maken van een (dynamische) sitemap met daarachter een database. In deze database staan drie tabellen waar de verschillende menuitems uit moeten worden opgehaald. Dit is op zich geen probleem, ik krijg gemakkelijk de verschillende menuitems onder mekaar:

menuitem
submenuitem
subsubmenuitem

Ik kan echter een submenuitem / subsubmenuitem ook naar een menuitem laten koppelen zodat een deel van de pagina navigatie opnieuw wordt opgebouwd. Dit is op de manier zoals ik het nu doe (zie code)


<table border="0" width="100%" cellspacing="0" cellpadding="0">
<tr>
<td width="100%" class="sitemap" colspan="2"><b><%=strnaambedrijf & " Sitemap"%></b> <hr size="1"> </td>
</tr>

<%
sqlstring = "SELECT menu.mID, menu.naam, menu.omschrijving, menu.bestand FROM menu Where actief='J' And user_level <=" & 100 & " Order By Volgorde;"
RSa.Open sqlstring, Con, 3, 3
While Not RSa.Eof
menulink RSa("mID"), "", "", RSa("bestand")

Response.Write("<tr><td width=""30%"" align=""left"" class=""sitemap"">")
Response.Write(create_href (strlink, strtarget, RSa("omschrijving"), RSa("naam"), "sitemap_bold"))
Response.Write("</td><td width=""70%"" align=""left"" class=""sitemap"">")
Response.Write(RSa("omschrijving"))
Response.Write("</td></tr>")

sqlstring = "SELECT submenu.mID, submenu.smID, submenu.naam, submenu.omschrijving, submenu.bestand FROM submenu Where actief='J' And user_level <=" & 100 & " And mID=" & RSa("mID") & " Order By Volgorde " & strvolgordeA
RSb.Open sqlstring, Con, 3, 3
While Not RSb.Eof
menulink RSb("mID"), RSb("smID"), "", RSb("bestand")

Response.Write("<tr><td width=""30%"" align=""left"" class=""sitemap""> ")
Response.Write(create_href (strlink, strtarget, RSb("omschrijving"), RSb("naam"), "sitemap"))
Response.Write("</td><td width=""70%"" align=""left"" class=""sitemap"">")
Response.Write(RSb("omschrijving"))
Response.Write("</td></tr>")

sqlstring = "SELECT subsubmenu.mID, subsubmenu.smID, subsubmenu.ssmID, subsubmenu.naam, subsubmenu.omschrijving, subsubmenu.bestand FROM subsubmenu Where actief='J' And user_level <=" & 100 & " And smID=" & RSb("smID") & " Order By Volgorde " & strvolgordeB & ";"
RSc.Open sqlstring, Con, 3, 3
While Not RSc.Eof
menulink RSc("mID"), RSc("smID"), RSc("ssmID"), RSc("bestand")

Response.Write("<tr><td width=""30%"" align=""left"" class=""sitemap"">  ")
Response.Write(create_href (strlink, strtarget, RSc("omschrijving"), RSc("naam"), "sitemap"))
Response.Write("</td><td width=""70%"" align=""left"" class=""sitemap"">")
Response.Write(RSc("omschrijving"))
Response.Write("</td></tr>")

RSc.MoveNext
Wend
RSc.Close
RSb.MoveNext
Wend
RSb.Close

Response.Write("<tr><td width=""100%"" align=""left"" class=""sitemap"" colspan=""2""><hr size=""1""></td></tr>")

RSa.MoveNext
Wend
RSa.Close
%>
</table>


Zoals jullie kunnen zien werk ik met 3 recordsets, iets wat zolang ik op het eerste "niveau" (dus wanneer ik nog geen sub(sub)menuitems heb gekoppeld aan een menuitem) kan doen, echter, wanneer ik dit wel doe raak ik snel in de knop met de hoeveelheid recordsets die ik aan moet maken. Er zullen waarschijnlijk al mensen zijn die dit een hoog aantal vinden...

Mijn vraag is dus, is het mogelijk de hele bende in een sql string te zetten en die op te halen??

BVD

[ Voor 0% gewijzigd door faabman op 18-11-2002 19:45 . Reden: ff code tags weggehaald zodat de layout niet helemaal werd verneukt... ]

Op zoek naar een baan als Coldfusion webdeveloper? Mail me!


  • whoami
  • Registratie: December 2000
  • Laatst online: 17:38
Ja.

https://fgheysels.github.io/


  • KompjoeFriek
  • Registratie: Maart 2001
  • Laatst online: 02-01 05:18

KompjoeFriek

Statsidioot

Array van recordsets maken?
just my 2 cents....

WhatPulse! - Rosetta@Home - Docking@Home


  • whoami
  • Registratie: December 2000
  • Laatst online: 17:38
Het zal wel met 1 recordset kunnen....

code:
1
2
3
4
SELECT menu.titel, submenu.titel, subsubmenu.titel
FROM  menu, submenu, subsubmenu
WHERE...
ORDER BY ...


En dan ga je aan 'groepsverwerking' doen....

Trouwens, ik vind jouw datamodel niet goed. :P Wat ga je doen als plots blijkt dat er meerdere niveau's moeten mogelijk zijn?

Owja, en nog iets. :P Pas eens de layout van jouw code aan, want zo verneuk je de layout.

https://fgheysels.github.io/


  • robjanssen
  • Registratie: September 2001
  • Laatst online: 02-08 16:10

robjanssen

Software Developer

ASP.NET Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
<table border="0" width="100%" cellspacing="0" cellpadding="0">
<tr> 
<td width="100%" class="sitemap" colspan="2"><b><%=strnaambedrijf & " Sitemap"%></b> <hr size="1"> </td>
</tr>

<%
sqlstring = "SELECT menu.mID, menu.naam, menu.omschrijving, menu.bestand " _
               & "FROM menu " _
               & "WHERE actief='J' " _
               & "AND user_level <=" & 100 & " " _
               & "ORDER BY Volgorde;"
RSa.Open sqlstring, Con, 3, 1
While Not RSa.Eof
  menulink RSa("mID"), "", "", RSa("bestand")

  Response.Write("<tr><td width=""30%"" align=""left"" class=""sitemap"">")
  Response.Write(create_href (strlink, strtarget, RSa("omschrijving"), RSa("naam"), "sitemap_bold"))
  Response.Write("</td><td width=""70%"" align=""left"" class=""sitemap"">")
  Response.Write(RSa("omschrijving"))
  Response.Write("</td></tr>")

  DisplaySubmenu RSa("mID")

  Response.Write("<tr><td width=""100%"" align=""left"" class=""sitemap"" colspan=""2""><hr size=""1""></td></tr>")

  RSa.MoveNext
Wend
RSa.Close
%>
</table>


<%
FUNCTION DisplaySubmenu(submenuID)
  sqlstring = "SELECT submenu.mID, submenu.smID, submenu.naam, submenu.omschrijving, submenu.bestand 
                 & "FROM submenu " _
                 & "WHERE actief='J' " _
                 & "AND user_level <=" & 100 & " " _
                 & "AND mID=" & submenuID & " " _
                 & "ORDER BY Volgorde " & strvolgordeA
  RSb.Open sqlstring, Con, 3, 1
  While Not RSb.Eof
    menulink RSb("mID"), RSb("smID"), "", RSb("bestand")

    Response.Write("<tr><td width=""30%"" align=""left"" class=""sitemap"">&nbsp;")
    Response.Write(create_href (strlink, strtarget, RSb("omschrijving"), RSb("naam"), "sitemap"))
    Response.Write("</td><td width=""70%"" align=""left"" class=""sitemap"">")
    Response.Write(RSb("omschrijving"))
    Response.Write("</td></tr>") 
  
    DisplaySubmenu RSb("smID")

    RSb.MoveNext
  Wend
  RSb.Close
END FUNCTION
%>

Verwijderd

Waarom maak je niet een tabel met een veld menulevel en een veld relatiemet dus :

id beschrijving level relatie
1 Computers 1 0
2 Randapparatuur 2 1
3 Printers 3 2

enz. enz.

Kan dan prima in 1 simpele tabel.....

  • faabman
  • Registratie: Januari 2001
  • Laatst online: 08-08-2024
whoami schreef op 18 november 2002 @ 19:39:
Trouwens, ik vind jouw datamodel niet goed. :P Wat ga je doen als plots blijkt dat er meerdere niveau's moeten mogelijk zijn?

Owja, en nog iets. :P Pas eens de layout van jouw code aan, want zo verneuk je de layout.
Oke, daar heb je gelijk in en ik ben nu op weg om de database structuur aan te passen, ik heb nu 1 tabel waarvan de relevante velden de volgende zijn...

mID ; relatie ; niveau ; ondergeschikt ; sorteervolgorde

mID = een automummeringsveld
relatie = een veld waarin een mID terug kan komen
niveau = een veld waarmee ik in bijvoorbeeld een sitemap het een en ander weer kan geven
onderliggend = een veld met als waarde J of N, dit geeft mij de mogelijkheid om aan te geven of een item moet linken naar een "nieuwe" navigatie of dat een deel van de navigatie moet openklappen, ik wil namelijk wel de mogelijkheid geven om heel diep te gaan, maar, weet uit ervaring dat dat er erg onoverzichtelijk uit kan komen te zien...
sorteervolgorde, elke rij bevat een veld sorteervolgorde en wanneer de navigatie moet worden weergegeven moet dit gebeuren aan de hand van deze sorteervolgorde

Ik zit me dus af te vragen hoe ik het voor mekaar moet krijgen om een query samen te stellen die, wanneer ik bijvoorbeeld 10 niveau's in de leftnav wil weergeven alle items selecteerd, hiervoor heb ik het dus het veld onderliggend gemaakt, maar, hoe krijg ik het voor mekaar om de query met de mID die uit de Request.QueryString() komt alle bovenliggende items op te laten halen, gesorteerd op het veld sorteervolgorde van het "bovenliggende" item.

BVD

Op zoek naar een baan als Coldfusion webdeveloper? Mail me!

Pagina: 1