Hej Jag har en nyhets databas där jag har 2 tabeller en med månader, namn o nr. tex januari = 1 osv.
Sen har jag en nyhetstabell där det finns ett fält som heter manad, som kan ha nr. 1-12.
Nu vill jag skriva ut alla nyheter på skärmen men under respektive månad, så här
JANUARI
(nyhet2) - Det är kul med snö
(nyhet5) - Mamma kom hem från Göteborg
FEBRUARI
(nyhet1) - Jag fyllde år
(nyhet3) - Jag köpte glass
(nyhet4) - Jag hoppade i ett hopptorn
OSV OSV TILLS SISSTA NYHETEN I DEN MÅNAD SOM HAR BLIVIT HÖGST.
Hur fasen gör man det..
tacksam för all hjälp
------------------
1 Man, 1 Million dead, The odds are just about even - Ash
do until manad.eof
skriv ut månadsinfo
select * from nyheter where manadsnr=nyhetsnr
do until nyheter.eof
skriv ut nyhetsinfo
nyheter.movenext
loop
nyheter.close
manad.movenext
loop
manad.close
Jag fyller i nyheter som ligger fram i tiden, tex att jag fyller i nyheter som har mars som månad. Det är en blandad nyhets och "kalender" databas. Jag kanske inte heller har några nyheter alls i tex juni så det måste man ju tänka på också.
Han ska först skriva ut den månad som är närmast om vi är i februari vill ja först skriva ut
Februari
-lista alla nyheter som har 2 som month_id (det är nr. 1-12)
Mars
-lista alla nyheter som har 3 som month_id
osv osv.
------------------
1 Man, 1 Million dead, The odds are just about even - Ash
varför har du 2 tabeller??
[r]
Det går att få ut listningen med endast news tabellen, ex:
<%
Dim dteDateNow
Dim strSQL
Dim objConn
Dim objRS
Dim intNewsID
Dim dteDate
Dim strHeader
Dim dteLastDate
dteDateNow = Date()
strSQL = "SELECT news_id, news_date, news_header " & _
"FROM news " & _
"WHERE news_date >= #" & dteDateNow & "# " & _
"ORDER BY news_date ASC"
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=c:\dbaser\wfmonth.mdb"
Set objRS = objConn.Execute(strSQL)
If objRS.EOF Then
Response.Write "Finns inget att visa."
Else
Do Until objRS.EOF
intNewsID = objRS(0)
dteDate = objRS(1)
strHeader = objRS(2)
If dteDate <> dteLastDate Then
Response.Write "<B>" & MonthName(Month(dteDate)) & "</B><BR>"
End If
Response.Write " " & strHeader & "<BR>"
dteLastDate = dteDate
objRS.MoveNext
Loop
End If
Set objRS = Nothing
objConn.Close
Set objConn = nothing
%>
------------------ Private Function OutPut(ByRef sString)
OutPut = "Who gives ..." & sString
End Function
I fall som dessa då man bara listar ut ett antal värden i någon typ av tabellform, och där man inte behöver skapa länkar för varje "rad" så är det ett ypperligt sätt att använda GetRows()
Detta är det prestandamässigt snabbaste vägen, eftersom man plockar ut datan från databasen med ett mycket mindre antal hits.