Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Gruppering av data i 3 nivåer

Postades av 2003-05-12 20:59:06 - Anette Jonsson, i forum asp - allmänt, Tråden har 3 Kommentarer och lästs av 912 personer

Hej!

Vill först passa på att berömma denna site, har läst lite då och då och haft nytta av att botanisera bland tips, tricks och råd.

Nu har jag kört fast i nedanstående kod. Det allra första "Barnet" (strChild) visas inte, men däremot alla följande. Är det någon vänlig själ här som kan se vad jag gjort för fel?

<code>

Dim dbConn
dbConn ="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("TestDB.mdb")

set adoConn = Server.CreateObject("ADODB.Connection")
set adoRs = Server.CreateObject("ADODB.Recordset")
' open dbConn
adoConn.Open dbConn

' TABELL: NewParent
' Fält: pID Tal(heltal), strParent txt(50), strChild txt(50), strGrandChild txt(50), strLink txt(255)

strSQL = "SELECT * FROM NEWPARENT ORDER BY pID, strChild, strGrandChild;"

set adoRs = adoConn.Execute(strSQL)

sPrevParent = ""
sParent = ""

sPrevChild = ""
sChild = ""

' Set First Parent to True
bFirst = True

While NOT adoRs.EOF
sPrevParent = sParent
sParent = adoRs("strParent")

If strcomp(sPrevParent, sParent) <> 0 Then
If bFirst = True Then
If IsNull(adoRs("strLink")) Then
Response.Write "<b>" & sParent & "</b>" & vbCrLF
Else
Response.Write "<b>" & sParent & "</b>"
End If
Else
If IsNull(adoRs("strLink")) Then
Response.Write "<br><b>" & sParent & "</b>" & vbCrLF
Else
Response.Write "<br><b>" & sParent & "</b>"
End If
End If
Else
Response.Write "&nbsp;" & vbCRLF
End If

sPrevChild = sChild
sChild = adoRs("strChild")

If IsNull(adoRs("strLink")) Then
TheLink = "&nbsp;" & sChild
Else
TheLink = "&nbsp;" & sChild & ""
End If

If strcomp(sPrevChild, sChild) <> 0 Then
Response.Write "<br><b><font color=red>" & TheLink & "</font></b>" & vbCrLF
End If
If strcomp(sPrevChild, sChild) = 0 Then
Response.Write "<br>&nbsp;&nbsp;» " & "" & adoRs("strGrandChild") & "" & vbCrLF
End If

adoRs.MoveNext
bFirst = False ' Parent is no longer first, therefore set to false
Wend

adoRs.Close
Set adoRs = nothing

adoConn.Close
Set adoConn = nothing


</code>

MVH / Anette


Svara

Sv: Gruppering av data i 3 nivåer

Postades av 2003-05-12 23:48:55 - Andreas Hillqvist

KAn du beskriva hur du lagrar informationen. Strukturen i den.


Svara

Sv: Gruppering av data i 3 nivåer

Postades av 2003-05-13 09:00:43 - Andreas Hillqvist

Jag skulle göra en dynamisk lösning:

Tabell: Categories
Fält: CategoryId (Long Integer, Räknare)
Fält: CategoryParent (Long Integer) -> Categories.CategoryId
Fält: CategoryName (Text(255))

Tabell: Links
Fält: LinkId (Long Integer, Räknare)
Fält: LinkCategory -> Categories.CategoryId
Fält: LinkName (Text(255))
Fält: LinkURL (Text(255))

Exempel Data:

CategoryId CategoryParent CategoryName
1 Null Internet
2 1 Sökmotorer
3 2 Svenska
4 1 Myndigheter
5 1 Forum

LinkId LinkCategory LinkName LinkURL
1 3 Google http://www.Google.com
2 2 Yahoo http://www.Yahoo.com
3 4 RSV http://www.rsv.se
4 5 Pellesoft http://www.pellesoft.nu


<code>
<%
Sub List(Con, Categories)
Dim Links
Dim SubCategories
Set Links = Server.CreateObject("ADODB.Recordset")
Set SubCategories = Server.CreateObject("ADODB.Recordset")

Response.Write "<UL>"
Do Until Categories.EOF
Response.Write "<LI><B>" & Server.HTMLEncode(Categories("CategoryName"))& "<B></LI>"
SubCategories.Open "SELECT *" & vbCrLf & _
"FROM Categories" & vbCrLf & _
"WHERE CategoryParent = " & Categories("CategoryId") & vbCrLf & _
"ORDER BY CategoryName", Con
List Con, SubCategories
SubCategories.Close

Links.Open "SELECT *" & vbCrLf & _
"FROM Links" & vbCrLf & _
"WHERE LinkCategory = " & Categories("CategoryId") & vbCrLf & _
"ORDER BY LinkName", Con
Do Until Links.EOF
Response.Write "<LI>" & Server.HTMLEncode(Links("LinkName")) & "</LI>"
Links.MoveNext
Loop
Links.Close

Categories.MoveNext
Loop
Response.Write "</UL>"
Set SubCategories = Nothing
End Sub

Dim Rs
Dim Con
Set Con = Server.CreateObject("ADODB.Connection")
Con.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Server.MapPath("TestDB.mdb")


Set Rs = Server.CreateObject("ADODB.Recordset")
Rs.Open "SELECT *" & vbCrLf & _
"FROM Categories" & vbCrLf & _
"WHERE CategoryParent Is Null" & vbCrLf & _
"ORDER BY CategoryName", Con


If Rs.EOF Then
Response.Write "Det finns inga kategorier"
Else
List Con, rs
End If

rs.Close
Set rs = Nothing

Con.Close
Set Con = Nothing
</code>
Har inte testat den så det kan vara fel i den.

Minder kod och dynamisk struktur.


Svara

Sv: Gruppering av data i 3 nivåer

Postades av 2003-05-14 21:39:24 - Anette Jonsson

Tack för hjälpen :-)


Svara

Nyligen

  • 08:28 Butiksskyltar: Hur upplever utbude
  • 22:31 Slappna av
  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 800
27 960
271 761
546
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies