webForumDet fria alternativet

Problemas med kod som skall skrivas ut från join mm..

ASP

3 svar · 130 visningar · startad av brw

Medlem sedan juli 2000619 inlägg
Frågan#1

Hej!

LarsG .. jag fick hjälp av dig för ett tag sedan med en kod för en meny där det var med en join till en annan tabell.. nu har jag gjort om lite med en annan meny och får inte det att fungera riktigt och undrar om du har lust att hjälpa mig.

Koden som jag försöker fixa är från följande:

<%
Dim SQLmenyval, rsmv, dl, mvurl, mkurl, oldid, menykategori
SQLmenyval = "Select m.id, m.title, m.menyval, m.dl, m.url, m.ordning, " &_
" m.target, mk.url as mkurl, mk.menykategori, mk.ordning, mk.target " &_
" FROM menyval as m left outer join menykategori as mk on m.id = mk.menyvalid AND mk.aktiv = 'j' " &_
" WHERE m.menyid = 20 AND m.aktiv = 'j' " & _
" ORDER BY m.ordning, mk.ordning ASC"

Set RSmv = Connection.Execute(SQLmenyval)

oldid = 0
Do until RSmv.EOF
valid = RSmv("id")
if clng(oldid) <> clng(valid) then
if cint(oldid) <> 0 then
%>

oCMenu.makeMenu('top<%=mvordning%>','',' <%=menyval%>','<%=mvurl%>','<% If mvtarget <> "ej" Then Response.Write mvtarget End If %>')

<%
end if
menyval = RSmv("menyval")
dl = RSmv("dl")
mvurl = RSmv("url")
mvordning = RSmv("ordning")
mvtarget = RSmv("target")
oldid = valid
%>

<% If dl = "j" Then %>

oCMenu.makeMenu('top<%=mvordning%>','',' <%=menyval%>','<%=mvurl%>','<% If mvtarget <> "ej" Then Response.Write mvtarget End If %>')

<% Else %>

oCMenu.makeMenu('top<%=mvordning%>','',' <%=menyval%>','<%=mvurl%>','<% If mvtarget <> "ej" Then Response.Write mvtarget End If %>')

<% 
End If 
End if 
%>

<%
mkurl = RSmv("mkurl")
menykategori = RSmv("menykategori")
mkordning = RSmv("ordning")
mktarget = RSmv("target")
if not isnull(menykategori) then
%>
	oCMenu.makeMenu('sub<%=mvordning%><%=mkordning%>','top<%=mvordning%>','<%=menykategori%>','<%=mkurl%>')
<% End If %>

<%
RSmv.Movenext
Loop

If oldid <> 0 Then
%>

<%
End If

RSmv.Close
Set RSmv = Nothing
%>

Har ingen aning om hur jag ska göra.

Det jag vill att den skall skriva ut är:

Om aktiv = "j" och dl = "j" från post ifrån MENYVAL så ska den skriva ut:

oCMenu.makeMenu('top<%=ordning%>','',' <%=menyval%>','<%=url%>','<%=target%>')
	

Annars (else)

Om aktiv = "j" och dl = "n" från post från MENYVAL så ska den skriva ut:

oCMenu.makeMenu('top<%=mvordning%>','',' <%=menyval%>','<%=mvurl%>','<%=mvtarget%>')

och här om mkaktiv = "j" rabbla upp menykategorierna som tillhör posten som kommer från MENYVAL

	oCMenu.makeMenu('sub<%=mvordning%><%=mkordning%>','top<%=mvordning%>','<%=menykategori%>','<%=mkurl%>','<%=mktarget%>')

annars kolla om det finns flera menykategori till det menyvalet som är aktuellt

och sen movenext till nästa post i menyval...

mvordning är numeriskt fält för sorteringsordning så har jag bara 3 poster så rabblas värdena upp 1,2,3
och mkordning är lika... sorterar menykategori efter värdena.

REDIGERING:
Exempel på färdig kod:

oCMenu.makeMenu('top1','','&nbsp;Startsida','script/index.asp','_parent')
	

oCMenu.makeMenu('top2','','&nbsp;Huvudval','index.asp')
	oCMenu.makeMenu('sub21','top2','Underval 1','underval1.asp','_blank')
	oCMenu.makeMenu('sub22','top2','Underval 2','underval2.asp','_parent')
	oCMenu.makeMenu('sub23','top2','Underval 3','underval3.asp','_parent')

/REDIGERING

Skulle vara j-vligt schysst om du kunde hjälpa mig igen.. :)

------------------
Ingenting är omöjligt, bara en utmaning.

[Redigerat av brw den 13 nov 2001]

Medlem sedan dec. 200012 464 inlägg
#2

Jo, jag återkommer senare i kväll, då det var en hel del att titta på och man har ju ett jobb att sköta också ;)

------------------
essentitia preter non sans multiplicandum

Medlem sedan dec. 200012 464 inlägg
#3

jag har inte gjort så mycket, bara lagt till några as i select-listan så
att man kan skilja på mk.target och mv.target och så lite småändringrar i
koden nedan. Jag tycker att din grundstruktur ser ok ut (så vitt jag kan bedöma.)

Skall det inte vara med några anrop till Startmenu/Endmenu rutiner?
Jag har något svagt minne av det från förra gången.

<%
Dim SQLmenyval, rsmv, dl, mvurl, oldid, mvtarget,mvordning
Dim mkurl,mktarget,mkordning, menykategori
SQLmenyval = "Select m.id, m.title, m.menyval, m.dl, m.url, m.ordning , " &_
" m.target, mk.url as mkurl, mk.menykategori, mk.ordning as mkordning, " & _
" mk.target as mktarget " & _
" FROM menyval as m left outer join menykategori " & _
" as mk on m.id = mk.menyvalid AND mk.aktiv = 'j' " &_
" WHERE m.menyid = 20 AND m.aktiv = 'j' " & _
" ORDER BY m.ordning, mk.ordning ASC"
Set RSmv = Connection.Execute(SQLmenyval)

oldid = 0
Do until RSmv.EOF
   valid = RSmv("id")
   if clng(oldid) <> clng(valid) then
      if cint(oldid) <> 0 then
%>
         oCMenu.makeMenu('top<%=mvordning%>','',' <%=menyval%>','<%=mvurl%>',_
         '<% If mvtarget <> "ej" Then Response.Write mvtarget End If %>')
<%
     end if
     menyval = RSmv("menyval")
     dl = RSmv("dl")
     mvurl = RSmv("url")
     mvordning = RSmv("ordning")
     mvtarget = RSmv("target")
     oldid = valid
     If dl = "j" Then %>
        oCMenu.makeMenu('top<%=mvordning%>','',' <%=menyval%>','<%=mvurl%>',
        '<% If mvtarget <> "ej" Then Response.Write mvtarget %>') <%
     Elseif dl = "n" then %>
        oCMenu.makeMenu('top<%=mvordning%>','',' <%=menyval%>','<%=mvurl%>')
<% 
     End If 
  End if 
  mktarget = RSmv("mktarget")
  mkordning = RSmv("mkordning")
  mkurl = RSmv("mkurl")
  menykategori = RSmv("menykategori")
  if not isnull(menykategori) then
%>
     oCMenu.makeMenu('sub<%=mvordning%><%=mkordning%>','top<%=mvordning%>',_
                     '<%=menykategori%>','<%=mkurl%>') <%
  End If
  RSmv.Movenext
Loop

If oldid <> 0 Then
'vad skall hända här
End If

RSmv.Close
Set RSmv = Nothing
%>

------------------
essentitia preter non sans multiplicandum

Medlem sedan juli 2000619 inlägg
#4

Tackar.. nu fungerar det fint..

dom där andra prylarna som du snacka om var till en annan meny.. nu har jag hittat en bättre som jag ska använda detta på istället.

Tack för hjälpen!
/brw

------------------
Ingenting är omöjligt, bara en utmaning.

258 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
118 ms — ändringar (db)