/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
SQL menu - plz help
Fra : Summasummarum


Dato : 23-11-03 09:58

Hej,

Som subj. siger. En simpel menu er defineret i en tabel. Men hvordan trækker
man den bedst ud?:

Table menu har disse 3 kolonner: menuid parent menudesc

Ok dette skulle være nemt? De menurækker som har parent=0 er "toplevel". Og
så videre. Et ekempel:

1 0 "Items"
2 0 "Standings"
3 0 "Test"
4 2 "Liverpool"
5 2 "AC Milan"
6 1 "Itemno1"

Denne menu skulle så komme i følgende rækkefølge:

Items
Itemno1
Test
Standings
AC Milan
Liverpool

Dvs: Alfabetisk sorteret med børnene under deres forældre. Ikke? Jo -Og
selecte menuen og lave noget gymnastik i ASP er ikke så svært. Men ASP er
nok det værste sprg når man skal håndtere arrays...Så en simpel ting bliver
temmelig grim. Bruge en stored procedure involverer mindt 2-3 temporære
tabeller. Heller ikke særligt elegant.

Så dette er mit spørgsmål: Er der ikke en måde at udtrække denne sorterings
orden på en nem og smuk måde i SQL?

--
Takker,
Summa



 
 
Kasper Katzmann (01-12-2003)
Kommentar
Fra : Kasper Katzmann


Dato : 01-12-03 15:36

Summasummarum skrev
> Hej,
>
> Som subj. siger. En simpel menu er defineret i en tabel. Men hvordan
> trækker man den bedst ud?:
>
> Table menu har disse 3 kolonner: menuid parent menudesc
>
> Ok dette skulle være nemt? De menurækker som har parent=0 er
> "toplevel". Og så videre. Et ekempel:
>
> Denne menu skulle så komme i følgende rækkefølge:
>
> Items
> Itemno1
> Test
> Standings
> AC Milan
> Liverpool
>
> Så dette er mit spørgsmål: Er der ikke en måde at udtrække denne
> sorterings orden på en nem og smuk måde i SQL?

Jeg fik det meste af denne her i et lignende spørgsmål jeg havde for ikke så
lang tid siden.

[CODE]

sql = "SELECT menuid, parent, menudesc FROM [MenuTabellen]"
Set rs = Conn.Execute(sql)

sub vismenu(nuvParent)
for i=lbound(rsArray,2) to ubound(rsArray,2)
if rsArray(1,i) = nuvParent then

if rsArray(0,i) = ParentID then
Selected = "selected"
else
Selected = ""
End if

lvl = lvl + 1

if nuvParent = 0 then
lvl = 0
end if

niveau = String(lvl, 32)
niveau = Replace(niveau, " ", "  &nbsp")

Response.Write vbTab & "<option value=""" & rsArray(0,i) & """ "
& Selected & ">" & niveau & rsArray(2,i) & "</option>" & vbCrLf

vismenu rsArray(0,i)

if rsArray(0,i) <> nuvParent then
lvl = lvl - 1
end if

end if
next
end sub


if not rs.EOF then
rsArray=rs.GetRows()
lvl = 0
vismenu(0)
end if

[END CODE]

--
Mvh
Kasper Katzmann
------------------------------
Katzmann Consulting
http://www.katzmann.dk



Kasper Katzmann (01-12-2003)
Kommentar
Fra : Kasper Katzmann


Dato : 01-12-03 15:39

UPS troede jeg stod i d.e.i.w.s.ASP opg havde vist ikke læst hele
spørgsmålet
--
Mvh
Kasper Katzmann
------------------------------
Katzmann Consulting
http://www.katzmann.dk



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408925
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste