Avatar billede triggy Nybegynder
22. juli 2005 - 01:02 Der er 7 kommentarer og
1 løsning

struktur til varegrupper / menu

Hej eksperter ;)

Jeg har et lille problem, jeg håber nogen kan hjælpe med...

Jeg har en database med varegrupper, der indeholder 3 felter:
ItemGroupID (Autonumrering)
ItemGroupName (Navn på varegruppe)
ItemSubGroup (Ref. ItemGroupID på den gruppe denne er en undergruppe af)

Ideen med det er, at jeg vil (med 1 URL variabel) have mulighed for ubegrænset antal undergrupper

eksempel:
ItemGroumName (ItemGroupID,ItemSubGroup)
Følgende Gruppeliste skulle så kunne fremkaldes ved en URL variabel: Group=5

Hardware (1,0)
Skærme (2,1)
Computere (3,1)
  IBM (5,3)
  Stationær (6,5)
  Bærbar (7,5)
Printere (4,1)
Software (8,0)

Hvis variablen var 4 ville den se sådan ud:

Hardware (1,0)
Skærme (2,1)
Computere (3,1)
Printere (4,1)
  HP (9,4)
  Lexmark (10,4)
Software (8,0)

Og hvis variablen er 0, vil den kun vise hovedgrupperne.

Håber I forstår hvad jeg mener.

Jeg har stirret mig blind på en løsning til dette. men jeg er overbevist om at det kan lade sig gøre.
Nogen der har nogle ideer ?

mvh
Henrik Madsen
Avatar billede triggy Nybegynder
22. juli 2005 - 01:04 #1
Ved ikke lige hvorfor den viser gruppeinddelingerne forkert...

Håber det her er mere overskueligt:

Hardware (1,0)
-Skærme (2,1)
-Computere (3,1)
--IBM (5,3)
---Stationær (6,5)
---Bærbar (7,5)
-Printere (4,1)
Software (8,0)



Hardware (1,0)
-Skærme (2,1)
-Computere (3,1)
-Printere (4,1)
--HP (9,4)
--Lexmark (10,4)
Software (8,0)
Avatar billede triggy Nybegynder
22. juli 2005 - 01:10 #2
Jeg havde forestillet mig noget i retning af:

en udsøgning på den valgte gruppe
herefter søge baglens gennem referencefeltet, og finde de forskellige grupper den valgte gruppe er en del af.
Og til sidst søge den anden vej igen, hvor man "åbner" de forskellige relevante grupper og viser undergrupper.

Men hvordan det nemmest gøres ... tjae .. :/
Avatar billede busschou Praktikant
22. juli 2005 - 08:38 #3
Ja du skal lave en rekursiv søgning for at finde alt
Du kan se et eksempel på en rekursiv søgning i forbindelse med tråde i debat indlæg her
http://www.html.dk/scripts/asp/00015/
Det kan give dig en ide til hvordan du skal gøre, da du i princippet skal gøre det samme. Det eneste er at dine felter er lidt anderledes og det skal selvfølgelig rettes til derefter :o)
Avatar billede triggy Nybegynder
22. juli 2005 - 22:20 #4
I teorien er det præcist det jeg skal have lavet...  Men den skal bare kun "åbne" de tråde der har relevans.

eks.
Hvis gruppekaldet er stationær (6,5) , skal den kun åbne grupperne Hardware,Computere,IBM.
Der skal den ikke vise mig alle undergrupperne i software og hvad der ellers måtte være...
Avatar billede busschou Praktikant
23. juli 2005 - 07:49 #5
hmm måske du kan gøre gavn af den menu jeg hjalp en gut med i sin tid her
http://www.eksperten.dk/spm/606899
Avatar billede triggy Nybegynder
23. juli 2005 - 20:22 #6
Så langt så godt...

Jeg har fået den til at trække de grupper den skal bruge, og lægge dem i et array.
Herefter burde det være præcis som dit første link.
Men jeg får bare blank skærm
Hvorfor ?

<!--#include file="Connections/SWshop.asp" -->
<%
Dim GroupRS
Dim GroupRS_numRows
GroupArray = Request.QueryString("Group")
MainGroupVar = Request.QueryString("Group")
Do until MainGroupVar = 0

Set GroupRS = Server.CreateObject("ADODB.Recordset")
GroupRS.ActiveConnection = MM_SWshop_STRING
GroupRS.Source = "SELECT SW_ItemGroups.ItemGroupID, SW_ItemGroups.ItemSubGroup  FROM SW_ItemGroups  WHERE (((SW_ItemGroups.ItemGroupID)=" & MainGroupVar & "))  "
GroupRS.CursorType = 0
GroupRS.CursorLocation = 2
GroupRS.LockType = 1
GroupRS.Open()
GroupRS_numRows = 0
GroupArray = (GroupRS.Fields.Item("ItemSubGroup").Value) & "," & GroupArray
MainGroupVar = (GroupRS.Fields.Item("ItemSubGroup").Value)
GroupRS.Close()
Set GroupRS = Nothing
Loop
GroupArray = Split(GroupArray,",")
Dim StructureRS
Dim StructureRS_numRows
arrID = ""
arrSUB = ""
arrNAME = ""
For n = Lbound(GroupArray) to Ubound(GroupArray)

Set StructureRS = Server.CreateObject("ADODB.Recordset")
StructureRS.ActiveConnection = MM_SWshop_STRING
StructureRS.Source = "SELECT SW_ItemGroups.ItemGroupID, SW_ItemGroups.ItemGroupName, SW_ItemGroups.ItemSubGroup  FROM SW_ItemGroups  WHERE (((SW_ItemGroups.ItemSubGroup)=" & GroupArray(n) & ") AND ((SW_ItemGroups.FirmaID)='1000')) ORDER BY SW_ItemGroups.ItemGroupName "
StructureRS.CursorType = 0
StructureRS.CursorLocation = 2
StructureRS.LockType = 1
StructureRS.Open()

StructureRS_numRows = 0

While NOT StructureRS.EOF
arrID = arrID & "," & StructureRS("ItemGroupID")
arrSUB = arrSUB & "," & StructureRS("ItemSubGroup")
arrNAME = arrNAME & "," & StructureRS("ItemGroupName")
StructureRS.MoveNext
Wend
StructureRS.Close()
Set StructureRS = Nothing
Next
arrID = Split(arrID,",")
arrSUB = Split(arrSUB,",")
arrNAME = Split(arrNAME,",")

function SubCheck(intID)
For m = 1 to Ubound(arrID)
If Cint(arrSUB(m)) = Cint(intID) Then
Groups = Groups & "<ul><li>" & arrNAME(m) & SubCheck(arrID(m)) & "</li></ul>"
End if
Next
end function

Response.Write SubCheck(0)
%>
Avatar billede triggy Nybegynder
24. juli 2005 - 00:59 #7
Nå, mig der havde skrevet forkert... 

Groups = Groups & "<ul><li>" & arrNAME(m) & SubCheck(arrID(m)) & "</li></ul>"

Skulle lige rettes til
SubCheck = SubCheck & "<ul><li>" & arrNAME(m) & SubCheck(arrID(m)) & "</li></ul>"

doh ;)

Det var simpelthen SUPER Busschou, alt virker som det skal nu.
smid lige et svar :)
Avatar billede busschou Praktikant
24. juli 2005 - 10:01 #8
det gør jeg da :o)
Godt det virker ! :o)
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