Avatar billede snebolle Nybegynder
25. september 2002 - 19:37 Der er 9 kommentarer og
1 løsning

Udskriv en tabel i flere step fra databasen.

Hej,
Jeg har behov for lidt asp-hjælp. Min tabel i databasen skal udskrives på siden i flere step. Jeg ved ikke helt om man skal skrive nogle tal i en kolonne så man nemmere kan kende de forskellige rækker??
Men først har jeg lavet en lille forklaring så det er nemmere at forstå.
http://www.2access.dk/nyt/layout.gif

Jeg vil blive meget glad hvis nogle kan komme med et eksempel, som jeg kan bruge.

Her kommer koden som jeg bruger nu.
<%
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("forum.mdb")

Function DBFix(tempString)
    tempString = Replace(Trim(tempString), "'", "''")
    tempString = Replace(tempString, "|", "")
    DBFix = tempString
End Function
%>
<%
Set myConn = Server.CreateObject("ADODB.Connection")
myConn.Open strDSN

strSQL = "SELECT * FROM Forums"
Set rs = myConn.Execute(strSQL)
If Not (rs.BOF Or rs.EOF) Then
    Do While Not rs.EOF
        strSQL = "SELECT *, Format$([date],'dd-mm-yyyy') AS FormDate, Format$([date],'hh:mm') AS FormTime FROM Entries WHERE (ForumID =" & rs("Id") & ") ORDER BY ID DESC"
        Set formatDate = myConn.Execute(strSQL)
        If (formatDate.BOF Or formatDate.EOF) Then
            dtmFormatDate = "Ingen indlæg"
        Else
            dtmFormatDate = formatDate("FormDate")
        End If
        strSQL = "SELECT Count(*) AS ItemCount FROM Entries Where (ForumID = " & rs("Id") & ")"
        Set recordCount = myConn.Execute(strSQL)
        strHTML = strHTML & "<tr><td STYLE=""border-bottom: thin dotted #E9ECEF; border-bottom-width: 1px""><b><IMG SRC=images/pil.gif BORDER=0 WIDTH=11 HEIGHT=8 ALIGN=bottom ALT= ><a href=""forumthreads.asp?forumid=" & rs("ID") & """>" & rs("Forum") & "</a></b></td>"
        strHTML = strHTML & "<td ALIGN=center STYLE=""border-bottom: thin dotted #E9ECEF; border-bottom-width: 1px"">" & recordCount("ItemCount") & "</td>"
        strHTML = strHTML & "<td ALIGN=center STYLE=""border-bottom: thin dotted #E9ECEF; border-bottom-width: 1px"">" & dtmFormatDate & "</td></tr>"
        rs.MoveNext
    Loop
End If
myConn.Close
Set myConn = Nothing
%>
<HTML>
<HEAD>
</HEAD>
<BODY>
TABLE WIDTH="500" BORDER="0" CELLSPACING="0" CELLPADDING="1">
<TR>
    <TD BGCOLOR="#FFFFFF" STYLE="border-bottom: thin solid #AEAEB6; border-bottom-width: 1">&nbsp;&nbsp;<B>Forums</B></TD>
    <TD BGCOLOR="#FFFFFF" ALIGN="center" STYLE="border-bottom: thin solid #AEAEB6; border-bottom-width: 1"><B>Indlæg</B></TD>
    <TD BGCOLOR="#FFFFFF" ALIGN="center" STYLE="border-bottom: thin solid #AEAEB6; border-bottom-width: 1"><B>Seneste</B></TD>
</TR>
<%=strHTML%>
</TABLE>


</BODY>
</HTML>
Avatar billede dk_akj Nybegynder
25. september 2002 - 19:45 #1
Hej

Jeg vil foreslå at du lægger et felt mere på din forum tabel, kald den mygroup (endeligt ikke group da det er et reserveret ord.)
Tildil de forums du ønsker listet sammen samme nr i mygroup kolonnen

Lav så din sql som: "select * from forums group by mygroup"

Når du looper dit rs igennem checker du om mygroup ændres gør den det laver du en ny header inden du udskriver dine data.

Håber mit svar giver mening.

//akj
Avatar billede snebolle Nybegynder
26. september 2002 - 12:06 #2
Jep jeg kan nemt forstå den måde du mener. Men jeg kan ikke finde ud af hvordan man checker om ens mygroup ændres i en loop.
Så hvis du har tid/løst må du meget gerne hjælpe mig lidt mere.

Mvh René
Avatar billede dk_akj Nybegynder
26. september 2002 - 12:12 #3
Jeg plejer at gøre således:

do while not rs.eof
  mygroup = rs("mygroup")          ' find ud af hvilken gruppe det er
  if mygroup <> mylastgroup then  ' er den forskellig fra sidst ??
    ' udskriv header              ' hvis ja så opretter vi en ny header
  end if
  mylastgroup = mygroup            ' sidste gruppe sættes lig nuværende
                                   
  ' udskriv forumnavn og link til forum osv...

  rs.movenext                      ' næste record
loop

//akj
Avatar billede snebolle Nybegynder
30. september 2002 - 22:35 #4
dk_akj >> du har ikke tid/løst til at hjælpe mig lidt udfra min kode ?? Jeg er lidt ny i asp-verden, men jeg har prøvet mange forskellige muligheder de sidste mange dage men jeg kan bare ikke få det til at virke :-(
Avatar billede dk_akj Nybegynder
01. oktober 2002 - 07:37 #5
Her er lidt der forhåbentligt hjælper dig videre:

På din tabel forums skal du tilføje en kolonne med navnet mygroup, det skal være af datatypen number.
Mygroup er den kolonne vi grupperer efter.

Jeg har flyttet lidt rundt på din kode og lagt koden til gruppeskift ind.

Spørg endeligt løs hvis der er noget du ikke forstår.

//akj
<HTML>
<HEAD>
</HEAD>
<BODY>
<TABLE WIDTH="500" BORDER="0" CELLSPACING="0" CELLPADDING="1">
<%
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("forum.mdb")

Function DBFix(tempString)
    tempString = Replace(Trim(tempString), "'", "''")
    tempString = Replace(tempString, "|", "")
    DBFix = tempString
End Function
%>
<%
Set myConn = Server.CreateObject("ADODB.Connection")
myConn.Open strDSN

strSQL = "SELECT * FROM Forums"
Set rs = myConn.Execute(strSQL)
If Not (rs.BOF Or rs.EOF) Then
    Do While Not rs.EOF
        mygroup = rs("mygroup")          ' find ud af hvilken gruppe det er
        if mygroup <> mylastgroup then  ' er den forskellig fra sidst ??
            %>
            <TR>
                <TD BGCOLOR="#FFFFFF" STYLE="border-bottom: thin solid #AEAEB6; border-bottom-width: 1">&nbsp;&nbsp;<B>Forums</B></TD>
                <TD BGCOLOR="#FFFFFF" ALIGN="center" STYLE="border-bottom: thin solid #AEAEB6; border-bottom-width: 1"><B>Indlæg</B></TD>
                <TD BGCOLOR="#FFFFFF" ALIGN="center" STYLE="border-bottom: thin solid #AEAEB6; border-bottom-width: 1"><B>Seneste</B></TD>
            </TR>
            <%
        end if
        mylastgroup = mygroup            ' sidste gruppe sættes lig nuværende
   
        strSQL = "SELECT *, Format$([date],'dd-mm-yyyy') AS FormDate, Format$([date],'hh:mm') AS FormTime FROM Entries WHERE (ForumID =" & rs("Id") & ") ORDER BY ID DESC"
        Set formatDate = myConn.Execute(strSQL)
        If (formatDate.BOF Or formatDate.EOF) Then
            dtmFormatDate = "Ingen indlæg"
        Else
            dtmFormatDate = formatDate("FormDate")
        End If
        strSQL = "SELECT Count(*) AS ItemCount FROM Entries Where (ForumID = " & rs("Id") & ")"
        Set recordCount = myConn.Execute(strSQL)
        response.write  "<tr><td STYLE=""border-bottom: thin dotted #E9ECEF; border-bottom-width: 1px""><b><IMG SRC=images/pil.gif BORDER=0 WIDTH=11 HEIGHT=8 ALIGN=bottom ALT= ><a href=""forumthreads.asp?forumid=" & rs("ID") & """>" & rs("Forum") & "</a></b></td>"
        response.write "<td ALIGN=center STYLE=""border-bottom: thin dotted #E9ECEF; border-bottom-width: 1px"">" & recordCount("ItemCount") & "</td>"
        response.write "<td ALIGN=center STYLE=""border-bottom: thin dotted #E9ECEF; border-bottom-width: 1px"">" & dtmFormatDate & "</td></tr>"
        rs.MoveNext
    Loop
End If
myConn.Close
Set myConn = Nothing
%>

</TABLE>

</BODY>
</HTML>
Avatar billede snebolle Nybegynder
01. oktober 2002 - 13:10 #6
Jep tusind tak det virker perfekt nu. Jeg har dog et spørgsmål hvis det er muligt.
Der hvor jeg har skrevet Forums som tekst, kan det laves om så den skriver det jeg har skrevet i kolonnen mygroup ?
                <TD BGCOLOR="#FFFFFF" STYLE="border-bottom: thin solid #AEAEB6; border-bottom-width: 1">&nbsp;&nbsp;<B>Forums</B></TD>
Avatar billede dk_akj Nybegynder
01. oktober 2002 - 13:19 #7
Så skal du lige rette:
<TD BGCOLOR="#FFFFFF" STYLE="border-bottom: thin solid #AEAEB6; border-bottom-width: 1">&nbsp;&nbsp;<B>Forums</B></TD>

Til :
<TD BGCOLOR="#FFFFFF" STYLE="border-bottom: thin solid #AEAEB6; border-bottom-width: 1">&nbsp;&nbsp;<B><%=mygroup%></B></TD>

<% angiver at du går igang med noget asp.
=mygroup udskriver variablen mygroup fra recordsættet
%> lukker asp delen

//akj
Avatar billede snebolle Nybegynder
01. oktober 2002 - 15:03 #8
Jep perfekt. Det takker jeg rigtig mange gange for.

Mvh René
Avatar billede snebolle Nybegynder
01. oktober 2002 - 15:04 #9
Kan du ikke lave et svar så du kan få dine point ?
Avatar billede dk_akj Nybegynder
01. oktober 2002 - 15:08 #10
Det var så lidt, glad for at kunne hjælpe :o)

//akj
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester