webForumDet fria alternativet

Ringrostig

4 svar · 475 visningar · startad av magnusfeldth

magnusfeldthMedlem sedan jan. 20034 480 inlägg
#1

Ja, det märks att jag inte kodat på ett tag. Jag haren gång tidigare skrivit kod som hämtar menyer från en db, sen undermenyer som hör till dem från en annan db, men den verkar jag ha tagit bort... gjort en mindre sökning i arkivet men inte hittat där heller...

jag vill ha en kod som alltså söker igenom dbn: meny och listar, men mellan varje meny stannar den och kollar om det finns undermenyer och listar dem

alltså typ

MENY1
- Meny1.1
- Meny1.2
MENY2
- Meny2.1
MENY3
- Meny3.1
- Meny3.2
- Meny3.3

osv

här är min kod för att hämta första menyn

Set Connect = Server.CreateObject("ADODB.Connection")
	Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" &Server.MapPath("blabla_min_sökväg_och_databas")

	Set RecSet = Server.CreateObject("ADODB.Recordset")
    Visa = "SELECT top 9 * FROM huvudmenydb WHERE visa = 'ja' order by niva ASC"
   RecSet.Open Visa, Connect, adOpenStatic, adLockOptimistic
magnusfeldthMedlem sedan jan. 20034 480 inlägg
#2

hm, knopade ihop denna koden

<div id="accordion">
	
	<%	Set Connect = Server.CreateObject("ADODB.Connection")
	Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" &Server.MapPath("db/rohdinsdb.mdb")

	Set RecSet = Server.CreateObject("ADODB.Recordset")
    Visa = "SELECT all * FROM huvudmenydb WHERE visa = 'ja' order by niva ASC"
   RecSet.Open Visa, Connect, adOpenStatic, adLockOptimistic %>
                                <% Do Until RecSet.EOF %>
	<h3 align="center"><a href="#" ><% = UCase(RecSet("namn")) %></a></h3>
	<%		
                Set RecSet2 = Server.CreateObject("ADODB.Recordset")
                Visa2 = "SELECT * FROM undermenydb WHERE huvudmenyid = " & Trim(Recset("menyid")) & " and visa = 'ja' order by niva ASC "
                RecSet2.Open Visa2, Connect, adOpenStatic, adLockOptimistic
                %>
                <% Do Until RecSet2.EOF %>
                <div><h2 align="center">
		<a href="<%= RecSet2("link")%>"><%= UCase(RecSet2("namn"))%></a></h2>
	</div> <% RecSet2.Movenext
                loop
            RecSet2.Close     %>
	
	<% RecSet.Movenext
loop 

Recset.Close
Connect.Close

Set Recset = Nothing
Set Connect = Nothing
%>    
	</div>

men den skriver ut konstigt...

Meny 1
- Meny 1.1
Meny 1.2
- Meny 2
Meny 2.1
-Meny 3
Meny 3.1
-Meny 3.2
Meny 4
-Meny 4.1
Meny 4.2
- Meny5
Meny 5.1
- Meny 6
Meny 6.1
- Meny 7
Meny 7.1
- Meny 8
Meny 8.1
- Meny 9

Vad är problemet denna fredag?

magnusfeldthMedlem sedan jan. 20034 480 inlägg
#3

Fixade det faktiskt. Själva koden var det inget fel på, utan divet från jquery tyckte inte om det, men kunde fixa till genom att ändra koden till detta:

<div id="accordion">
	
	<%	Set Connect = Server.CreateObject("ADODB.Connection")
	Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" &Server.MapPath("db/rohdinsdb.mdb")

	Set RecSet = Server.CreateObject("ADODB.Recordset")
    Visa = "SELECT all * FROM huvudmenydb WHERE visa = 'ja' order by niva ASC"
   RecSet.Open Visa, Connect, adOpenStatic, adLockOptimistic %>
                                <% Do Until RecSet.EOF %>
	<h3 align="center"><a href="#" ><% = UCase(RecSet("namn")) %></a></h3>
	
                <div><h2 align="center"><%		
                Set RecSet2 = Server.CreateObject("ADODB.Recordset")
                Visa2 = "SELECT * FROM undermenydb WHERE huvudmenyid = " & Trim(Recset("menyid")) & " and visa = 'ja' order by niva ASC "
                RecSet2.Open Visa2, Connect, adOpenStatic, adLockOptimistic
                %>
                <% Do Until RecSet2.EOF %>
		<a href="<%= RecSet2("link")%>"><%= UCase(RecSet2("namn"))%></a> <br><% RecSet2.Movenext
                loop
            RecSet2.Close     %></h2>
	</div>
	
	<% RecSet.Movenext
loop 

Recset.Close
Connect.Close

Set Recset = Nothing
Set Connect = Nothing
%>    
	</div>
BoorgMedlem sedan okt. 2004409 inlägg
#4

magnusfeldth skrev:

Fixade det faktiskt. Själva koden var det inget fel på, utan divet från jquery tyckte inte om det, men kunde fixa till genom att ändra koden till detta:

<div id="accordion">
	
	<%	Set Connect = Server.CreateObject("ADODB.Connection")
	Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" &Server.MapPath("db/rohdinsdb.mdb")

	Set RecSet = Server.CreateObject("ADODB.Recordset")
    Visa = "SELECT all * FROM huvudmenydb WHERE visa = 'ja' order by niva ASC"
   RecSet.Open Visa, Connect, adOpenStatic, adLockOptimistic %>
                                <% Do Until RecSet.EOF %>
	<h3 align="center"><a href="#" ><% = UCase(RecSet("namn")) %></a></h3>
	
                <div><h2 align="center"><%		
                Set RecSet2 = Server.CreateObject("ADODB.Recordset")
                Visa2 = "SELECT * FROM undermenydb WHERE huvudmenyid = " & Trim(Recset("menyid")) & " and visa = 'ja' order by niva ASC "
                RecSet2.Open Visa2, Connect, adOpenStatic, adLockOptimistic
                %>
                <% Do Until RecSet2.EOF %>
		<a href="<%= RecSet2("link")%>"><%= UCase(RecSet2("namn"))%></a> <br><% RecSet2.Movenext
                loop
            RecSet2.Close     %></h2>
	</div>
	
	<% RecSet.Movenext
loop 

Recset.Close
Connect.Close

Set Recset = Nothing
Set Connect = Nothing
%>    
	</div>

Jag hade nog gjort så att jag hade haft allt i en öppning av databasen.

Så om huvud nivån var 1.0 och undernivå var 1.1 osv att du hade skrivit en if sats som hade kollat om siffran efter punkten var mindre än 1 så hade en huvudmeny skrivits ut, sedan en else och skriv ut en undermeny. Låter det rimligt?

BoorgMedlem sedan okt. 2004409 inlägg
#5
<div id="accordion">
	
	<%	Set Connect = Server.CreateObject("ADODB.Connection")
	Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" &Server.MapPath("db/rohdinsdb.mdb")

    Set RecSet = Server.CreateObject("ADODB.Recordset")
    Visa = "SELECT all * FROM huvudmenydb WHERE visa = 'ja' order by niva ASC"
    RecSet.Open Visa, Connect, adOpenStatic, adLockOptimistic
        
    Do Until RecSet.EOF
       If RecSet(Mid(niva,1)) = "0" then

            Response.Write "<h3 align=""center""><a href=""#"" >"
            Response.Write  UCase(RecSet("namn"))
            Response.Write "</a></h3>"
	
       Else

            Response.Write "<a href=""
            Response.Write RecSet2("link")
            Response.Write "">"
            Response.Write UCase(RecSet2("namn"))
            Response.Write "</a> <br>"
       End If

   RecSet.Movenext
   Loop 

Recset.Close
Connect.Close

Set Recset = Nothing
Set Connect = Nothing
%>    
	</div>

Mid är jag inte säker på om det funkar, va längesedan annars kanske du kan köra med right eller left... och jag skulle nog döpt nivåerna till 10 och 11 och 12 och 13 och 20. ja duförstår :)

Bara en tanke :i

134 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)