webForumDet fria alternativet

rekursiv kod

ASP

7 svar · 560 visningar · startad av Eclipse

Medlem sedan juli 20003 825 inlägg
Frågan#1
SQL = "SELECT a.intID, a.intParentID, a.strName, a.strURL, a.bolView " _ 
& ", b.intID, b.intParentID, b.strName, b.strURL, b.bolView " _
& ", c.intID, c.intParentID, c.strName, c.strURL, c.bolView " _
& " FROM (([catalogueSE] as a " _
& " LEFT JOIN [catalogueSE] as b on b.intParentID = a.intID) " _
& " LEFT JOIN [catalogueSE] as c on c.intParentID = b.intID) " _
& " ORDER BY a.strName, b.strName, c.strName;"

Resultat:
ID: 3 Name: Abbacadabra ParentID: 0 Add to this menu
ID: 5 Name: add me ParentID: 3 Add to this menu
ID: 1 Name: ddd ParentID: 0 Add to this menu
ID: 2 Name: krabban ParentID: 0 Add to this menu
ID: 4 Name: krabban nummer tre ParentID: 0 Add to this menu
ID: 6 Name: zzz ask me mooore!! ParentID: 5 Add to this menu

Denna koden finns och fungerar.

Jag undrar nu hur jag kan få detta att fungera ihop med Dtree??

d = new dTree('d');
d.add(0,-1,'Produktkatalog');
[b]d.add(1,0,'Elborstar', '/admin/catalogueSE/index.asp');[/b]
d.add(2,0,'Borsthållare', '/admin/catalogueSE/index.asp');
d.add(3,0,'Släpringar', '/admin/catalogueSE/index.asp');
d.add(4,0,'Lindningstråd', '/admin/catalogueSE/index.asp');
d.add(5,0,'Impregneringslack', '/admin/catalogueSE/index.asp');
d.add(6,0,'Ingjutningsmassa', '/admin/catalogueSE/index.asp');
d.add(7,0,'Kondensatorer', '/admin/catalogueSE/index.asp');
d.add(8,0,'Termokontakter', '/admin/catalogueSE/index.asp');
d.add(9,0,'Termistorer', '/admin/catalogueSE/index.asp');
[b]d.add(10,1, 'Silvergrafitborstar','/v2/se_products/silvergraphite/index.asp');[/b]
d.add(11,2, 'Borsthållare','/v2/se_products/brushholders/index.asp');
d.add(12,3, 'Släpringar','/v2/se_products/sliprings/index.asp');
d.add(13,4, 'Lindningstråd','/v2/se_products/winding/index.asp');
d.add(14,5, 'Impregneringslack','/v2/se_products/lack/index.asp');
d.add(15,6, 'Ingjutningsmassa','/v2/se_products/lack/index.asp');
d.add(16,7, 'Startkondensatorer','/v2/se_products/start/index.asp');
d.add(17,8, 'Termokontakter','/v2/se_products/termokontakter/index.asp');
[b]d.add(18,1, 'Koppargrafitborstar','/v2/se_products/coppergraphite/index.asp');[/b]
d.add(19,7, 'Driftkondensatorer','/v2/se_products/drift/index.asp');
[b]d.add(20,1, 'Elektrografitborstar','/v2/se_products/electrographite/index.asp');[/b]
d.add(21,7, 'Elektrolytkondensatorer','/v2/se_products/elektrolyt/index.asp');
d.add(22,7, 'Belysningskondensatorer','/v2/se_products/belysning/index.asp');
document.write(d);
Medlem sedan nov. 20017 144 inlägg
#2

Den behöver inte vara rekursiv ifrån databasen, den fixar det i js-scriptet. Se till att id och parentid hamnar rätt så hamnar de rätt.
Denna funkar finfint för mig:

Sub dtree(objConn, SQL, parentid)
Dim rs, strSQL
Set rs = objConn.Execute(SQL)
	
	Do Until rs.EOF																											  
		Response.Write "d.add("& rs(0) &","& rs(1) &",'"& rs(2) &"','"& rs(3) &"');"& vbcr
	rs.Movenext
	Loop
rs.close : set rs = nothing 
objConn.close : set objConn = nothing	
End sub
SQL="Select id, parentid,strName,strUrl from tabell order by strName"
dTree objConn,SQL,0
Medlem sedan juli 20003 825 inlägg
#3

Hmmm!!

Din kåd är ju mycket bättre än den jag har...!? Tror jag!!

Det fungerade jättebra! Jag förstår dock inte riktigt hur det fungerar, men det kan jag leva med!

***
Jag undrar, hur gör du ditt administrativa gränssnitt? Jag menar, för att lägga till, redigera och ta bort rubriker?

Man kan ju tänka sig att man har textlänkar på något vis...

Medlem sedan nov. 20017 144 inlägg
#4

Eclipse skrev:

Jag undrar, hur gör du ditt administrativa gränssnitt? Jag menar, för att lägga till, redigera och ta bort rubriker?

Man kan ju tänka sig att man har textlänkar på något vis...

Det känns ju som en hel vetenskap, vad menar du?

Medlem sedan juli 20003 825 inlägg
#5

Man måste manipulera rubrikerna på nåt vis, men jag har löst det nu, rätt snyggt dessutom.

Jag är inte färdig, men om du vill kan jag föklara.

Medlem sedan juli 20003 825 inlägg
#6
SQL = "SELECT a.intID, a.intParentID, a.strName, a.strURL, a.bolView " _ 
	& " FROM [" & myTable & "] as a " _
	& " ORDER BY a.strName;"
set mySQL = Conn.Execute(SQL)
IF NOT mySQL.EOF THEN listMyMenu = mySQL.GetRows()

***

' ## LOOP THROUGHT MENUS
IF IsArray(listMyMenu) THEN
	myRow = listMyMenu
	FOR j = 0 TO UBound(myRow,2)
		response.write "d.add(" & myRow(0,j) & "," & myRow(1,j) & ",'" & myRow(2,j) & "', '" _
		& request.serverVariables("PATH_INFO") & "?ID=" &myRow(0,j) & "');" & vbCRLF 
	NEXT
END IF

kåden genererear sidor i stil med:
/admin/catalogueSE/index.asp?ID=6

och utifrån det kan man redigera post med ID 6. Man kan lägga till och ta bort osv.

I just detta fallet ska jag ladda upp PDF:er som kopplas till varje rubrik, men det kan ju lika gärna vara bilder, text eller vad som helst!

Det var väldigt lite kod för att få väldigt mycket gjort, måste jag säga. Snubben som skrev D-tree visste nog vad han gjorde!

Medlem sedan juli 20003 825 inlägg
#7

Jag har implementerat menyn på webbplatsen, men vissa rubrikval blir ju markerade på varje sida på något slags mer eller mindre omotiverad sätt.

Kan man bli av med det på något vis!? Via kod...??

Medlem sedan nov. 20017 144 inlägg
#8
d = new dTree('d');
[b]d.config.useSelection= false;[/b]
d.add(0,-1,'Tree example','javascript: void(0);');
d.add(1, 0,'Node 1','javascript:void(0);');

......

document.write(d);
257 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)