|
| Hente spørgsmål OG svar. Fra : Thomas Voller |
Dato : 31-12-02 00:19 |
|
Hej NG.
Jeg sidder og bakser et forum sammen i ASP. På forumets forside vil jeg
selvfølgelig gerne have en oversigt over alle de emner der er skrevet om,
men jeg vil også gerne have vist hvor mange svar, der er på et givet emne.
Indtil videre har jeg gjort som følger:
Hent emner fra en database (SQL).
Do Until blablabla...
Udskriv emne
Hent og udskriv antal svar på aktuelle post fra en anden database (SQL).
Næste
Loop
En ret enkel måde at gøre det på, men der kommer jo en f... masse kald til
databasen. Det har jeg fået at vide fra en ven, at man kan undgå. Noget med
at kombinere de to SQL statements. Hvem kan hjælpe mig med det?
MVh. Voller.
| |
Jonas Skafte Jensen (31-12-2002)
| Kommentar Fra : Jonas Skafte Jensen |
Dato : 31-12-02 14:03 |
|
> En ret enkel måde at gøre det på, men der kommer jo en f... masse kald til
> databasen. Det har jeg fået at vide fra en ven, at man kan undgå. Noget
med
> at kombinere de to SQL statements. Hvem kan hjælpe mig med det?
Det kan jeg (!)
Lad mig se dine to SQL statements...
~J
| |
Thomas Voller (01-01-2003)
| Kommentar Fra : Thomas Voller |
Dato : 01-01-03 14:09 |
|
> Lad mig se dine to SQL statements...
' DB forbindelse
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" &
Server.MapPath("../db/database.mdb")
'Hent de ti nyeste emner. SQL 1.
Set rs = Conn.Execute("SELECT TOP 10 * FROM log ORDER BY Id DESC")
'Bearbejd data fra RS.
if (rs.BOF or rs.EOF) then
Blablabla
Else
Do While Not rs.EOF
Response.Write(*Udskriv liste over emner*)
'Hent antallet af svar på det emne der behandles nu. SQL 2.
Set recordCount = Conn.Execute("Select Count(*) As ItemCount From comment
Where newsid = '" & rs("Id") & "'")
'Arbejd med SQL 2.
if recordCount("ItemCount") = 1 then
Response.Write("Et svar")
Else
Response.Write(recordCount("ItemCount") & " antal svar")
End if
rs.MoveNext
Loop
End if
'Luk DB forbindelse, recordsets og alt det der...
En lidt hurtig udgave af koden, hvor jeg har skåret alt det irrelevante fra.
Jeg har smidt et par kommentarer ind nogle steder. Kan jeg få dig til at
kigge lidt på det? :)
Godt nytår til alle.
| |
Jonas Skafte Jensen (02-01-2003)
| Kommentar Fra : Jonas Skafte Jensen |
Dato : 02-01-03 01:01 |
|
Hej igen,
jeg tror at det du efterlyser er dette:
SELECT TOP 10 log.*, (SELECT COUNT(*) AS ItemCount FROM comment c
WHERE c.newsid = l.id) FROM log l ORDER BY l.Id DESC
| |
Thomas Voller (02-01-2003)
| Kommentar Fra : Thomas Voller |
Dato : 02-01-03 16:34 |
|
> jeg tror at det du efterlyser er dette:
Desværre. Det virkede ikke efter hensigten. Fik en pokkers mængde
syntaks-fejl. Jeg er imidlertid kommet frem til noget der virker.
SELECT TOP 10 count(comment.newsID) as ItemCount, log.Id, log.Dag, log.Tid,
log.Overskrift, log.Tekst
FROM log LEFT OUTER JOIN comment ON comment.newsID = log.ID
GROUP BY comment.newsID, log.Id, log.Dag, log.Tid, log.Overskrift, log.Tekst
ORDER BY log.Id DESC
Men tak for forsøget.
Thomas.
| |
|
|