I dette tilfælde, skal vi kun benytte os af de to nederste tabeller. Jeg har bixet med at lave top 5 over de nyeste indlæg i forummet, det er både emner og svar jeg taler om. Jeg har lavet følgende, som ikke virker som det skal:
Set conntemp = Server.CreateObject("ADoDB.Connection") conntemp.open DSN SQLNYEINDLAEG = "SELECT TOP 5 F_EMNER.EID, F_EMNER.FID, F_EMNER.F_E_DATO, F_EMNER.F_E_EMNE, " SQLNYEINDLAEG = SQLNYEINDLAEG & "F_SVAR.EID, F_SVAR.FID, F_SVAR.F_S_DATO " SQLNYEINDLAEG = SQLNYEINDLAEG & "FROM F_EMNER INNER JOIN F_SVAR ON (F_EMNER.FID = F_SVAR.FID) " SQLNYEINDLAEG = SQLNYEINDLAEG & "ORDER BY F_SVAR.F_S_DATO DESC" Set rsNyeIndlaeg = conntemp.execute(SQLNYEINDLAEG)
If Not (rsNyeIndlaeg.BOF or rsNyeIndlaeg.EOF) Then
Response.Write " <table style=""border-left: 1 solid #000000; border-right: 1 solid #000000; border-bottom: 1 solid #000000"" bgcolor=""#336699"" align=""center"" border=""0"" cellpadding=""1"" cellspacing=""0"" width=""100%"">"& vbCrLf Response.Write " <tr>"& vbCrLf Response.Write " <td>"& vbCrLf Do While Not rsNyeIndlaeg.EOF Response.Write " <img src=""images/pil.gif""> "& FormatDate(rsNyeIndlaeg("F_S_DATO"), 4) &" - <a href=""visemne.asp?eid="& rsNyeIndlaeg("EID") &"&fid="& rsNyeIndlaeg("FID") &""">"& rsNyeIndlaeg("F_E_EMNE") &"</a><br>"& vbCrLf rsNyeIndlaeg.MoveNext Loop rsNyeIndlaeg.Close : Set rsNyeIndlaeg = Nothing Else Response.Write " <center>Der er endnu ikke nogen indlæg i forummet</center>"& vbCrLf End If Response.Write " </td>"& vbCrLf Response.Write " </tr>"& vbCrLf Response.Write " </table>"& vbCrLf
Når jeg skal udskrive det som I kan se, så udskriver jeg f.eks. datoen med F_S_DATO og det går jo ikke, hvis det nu er et emne den skal udskrive, så jeg skal have lavet en SQL eller noget, som kan skille imellem EMNER og SVAR.
Men det havde jo været trivielt hvis emner og svar lå i samme tabel, ikke? De har jo stort set den samme information. Hvem har fundet på at lave det på den måde?
Men så: træk de 5 øverste ud af emnerne. Find datoen for den ældste af de 5 emner. Træk derefter så mange ud af svarene som er nyere end denne dato. Så har du to lister af emner og svar, og kan - med lidt programmering - finde de 5 nyeste.
Det er mig der har fundet på at lave det på den måde eller jeg har er nok ikke den første der har fundet på det, men det er mig der har lavet det forum der. Jeg kan da godt se at det ville være nemmere at lave det på den anden måde, men hvor sjovt ville det være hvis alt var nemt :)
Nå, men jeg da lige prøve at se om jeg kan finde ud af noget, ud fra dit forslag
kan du ikke forklare det første du skriver der: "Men så: træk de 5 øverste ud af emnerne. Find datoen for den ældste af de 5 emner.". Jeg kan godt finde ud af finde de 5 øverste, men hvordan skal jeg finde den ældste af dem, skal jeg gøre det med noget løkke eller noget ??
Mnjah - det var egentlig bare et gratis råd. Jeg får hovedpine af at skrive ASP/VB kode. Du kan oprette et eller flere arrays og lægge de 5 ind der. Så må den jo stå i den sidste (der kan vel være mindre end 5).
Ser for mig ud til at du skal bruge UNION og ROWCOUNT (MsSql-server...) Eksempel : SET ROWCOUNT 5; SELECT felt1 AS f1, felt2 AS f2 FROM Table1 UNION SELECT feltx AS f1, felty AS f2 FROM Table2 order by f1
Du må undskylde at jeg først svare nu, men mit internet har været nede hele weekenden og jeg har ikke haft andre muligheder til at komme på internettet.
Nu har jeg ikke så meget forstand på MsSQL eller ret og sagt har jeg slet ikke arbejdet med MsSQL før, så har lige et par spørgsmål omkring det.
Nu bruger jeg jo access db, så skal forbindelsen til db'en være en anden eller kan jeg godt bruge den samme, som når jeg bruger SQL ?
Skal jeg bare skrive det op som du har skrevet det der eller hva skal jeg gøre ?
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.