Avatar billede sp Nybegynder
27. marts 2001 - 21:01 Der er 35 kommentarer og
1 løsning

Top 5 debatindlæg af samtlige forums i dben

Hejsa,

Jeg er i øjeblikket igang med at lave et debatforum, men jeg mangler en side hvor der vises de nyeste 5 debatindlæg.
Hver debatforum har et table i databasen.
Dvs. den skal altså finde de 5 nyeste indlæg tilsammen i alle tables.
Der er et et table der indholder alle usernames til forums. Disse kan jo trækkes p så den kan finde de tables, men hvordan man får 5 nyeste af alle forums, ved jeg ikke...

Avatar billede jes_petersen Nybegynder
27. marts 2001 - 21:26 #1
Query = \"Select * from Tabel1,Tabel2 order by Oprettelsesdato desc\"
set rs = conn.execute(Query)

For i = 0 to 4
Response.Write rs(\"Titel\")
rs.movenext
Next

Ovenstående taler vist for sig selv...
Avatar billede jes_petersen Nybegynder
27. marts 2001 - 21:26 #2
Ups - svar
Avatar billede burningice Nybegynder
27. marts 2001 - 21:29 #3
det er da bare at sige
\"select top 5 * from tabel order by id desc\"
så får du kun de 5 nyeste
Avatar billede sp Nybegynder
27. marts 2001 - 21:39 #4
Jo men det ved jeg. Men jeg skal have top 5 af alle tables!
Avatar billede sp Nybegynder
27. marts 2001 - 21:39 #5
Kan man bruge komma?
Avatar billede sp Nybegynder
27. marts 2001 - 21:48 #6
Kan man gøre dette?
select top 5 * from tabel1,table2,table3 order by id desc
Avatar billede jes_petersen Nybegynder
27. marts 2001 - 21:58 #7
Lige nøjagtigt!
Avatar billede sp Nybegynder
27. marts 2001 - 22:05 #8
Jeg prøver lige, men hvordan kan man så tage alle usernames og indsætte dem fra det table med disse?
Her kommer de ud:
Set rsUsers = Conn.Execute (\"SELECT * FROM Users;\")

Jeg ved ikke lige hvordan.
Set rsClients = Conn.Execute (\"SELECT TOP 5 * FROM \" & rsUsers(\"username\") & \" WHERE AND Trash=False ORDER BY Followed DESC\")



Avatar billede sp Nybegynder
27. marts 2001 - 22:05 #9
De dur ikke.
Avatar billede webben Nybegynder
27. marts 2001 - 22:10 #10
SELECT TOP 5 * FROM tabel1,tabel2,tabel3 ORDER BY Dato DESC

Prøv dette det skulle vist nok du!!!!
Avatar billede sp Nybegynder
27. marts 2001 - 22:11 #11
Jeg skal have den til at tage alle usernames af forums og vælge top 5 af disse
Avatar billede sp Nybegynder
27. marts 2001 - 22:12 #12
Jo men jeg skal jo have usernames fra et table der hedder Users ind i strengen!???
Avatar billede webben Nybegynder
27. marts 2001 - 22:13 #13
I samme tabel eller i flere forskellige!!!
I samme database eller i flere forskellige!!!
Avatar billede sp Nybegynder
27. marts 2001 - 22:14 #14
I samme database:-)
Jeg har ét table der hedder Users. Det indeholder usernames til samtlige forums. Disse skal den bruge... Hvis det kan lade sig gøre.
Avatar billede webben Nybegynder
27. marts 2001 - 22:15 #15
<% set Conn = Server.CreateObject(\"ADODB.Connection\")
Conn.Open \"Driver={Microsoft Access Driver (*.mdb)}; DBQ=\" & Server.MapPath(\"database.mdb\")

SQL = \"SELECT TOP 5 * FROM users ORDER BY ID DESC\"
set rs = Conn.execute(SQL)
Do Until rs.EOF
%>

<%=rs(\"users\")%>

<br>

<%
rs.MoveNext
Loop
Conn.Close

%>
Avatar billede sp Nybegynder
27. marts 2001 - 22:17 #16
Set rsClients = Conn.Execute (\"SELECT TOP 5 * FROM \" & rsUsers(\"username\") & \", \"& rsUsers(\"username\") & \", WHERE AND Trash=False ORDER BY Followed DESC

Det går jo ikke bare at sætte variablerne ind i en SQL-streng i et loop,for den skal jo helst være fleksibel, så den tager alle de usernames, uanset antal...?
Avatar billede slash Nybegynder
27. marts 2001 - 22:18 #17
En idé til dit problem!

træk dine katerogier ud på noget der ligner følgende:

set conn = server.createobject(\"ADODB.Connection\")
conn.open \"dsn\", \"uid\", \"pwd\"
sql = \"select top 5 id, titel from <tabel1>\"
set res = conn.execute(sql)
n = res.eof
if n >= 0 then
  a = res.getrows()
else
  \"skriv en fejlbesked!\"
end if

sql1 = \"select top 5 * from <tabel2>\"
set res = conn.execute(sql)
n1 = res.eof
if n1 >= 0 then
  b = res.getrows()
else
  \"skriv en fejlbesked!\"
end if

*****vise dine kategoier:****
for row = 0 to ubound(a,2)
  response.write a(0,row)
  response.write a(1,row)
next
for row = 0 to ubound(b,2)
  response.write b(0,row)
  response.write b(1,row)
next

Du forstå :-]
Avatar billede webben Nybegynder
27. marts 2001 - 22:18 #18
Jeg har selv en side hvor jeg henter top 5 ud fra usernames og den kører da okay!
Avatar billede sp Nybegynder
27. marts 2001 - 22:18 #19
Ja den skal tage Usernames fra Users og bruge til at finde de forums der er...
Avatar billede webben Nybegynder
27. marts 2001 - 22:20 #20
nååååååå
Avatar billede sp Nybegynder
27. marts 2001 - 22:20 #21
Forstår du?
Avatar billede webben Nybegynder
27. marts 2001 - 22:21 #22
Næ egentlig ikke!!! Prøv at forklare har du ikke en side hvor man kan se???
Avatar billede slash Nybegynder
27. marts 2001 - 22:23 #23
jeg fatter heller ikke en pind af det du mener sp.........
Avatar billede slash Nybegynder
27. marts 2001 - 22:23 #24
sp>> har du normaliseret din datamodel?
Avatar billede sp Nybegynder
27. marts 2001 - 22:25 #25
Nej jeg har ingen side.
Men prøv lige at kigge på eksemplet her.
Jeg har rsUsers(\"username\") fra det table med alle username. Jeg skal have den til at tage alle disse usernames og tage top 5 af samtlige.
Altså jeg angiver ikke på forhånd navne på mine tables, da det jo er alt efter hvad mine debatforums hedder. Så derfor skal den før hente oplysningerne fra det table der hedder Users

Set rsClients = Conn.Execute (\"SELECT TOP 5 * FROM \" & rsUsers(\"username\") & \", \"& rsUsers(\"username\") & \", WHERE AND Trash=False ORDER BY Followed DESC

Avatar billede webben Nybegynder
27. marts 2001 - 22:25 #26
Sådan som jeg forstår det:

Du vil have vist top 5 fra en database med indlæg fra et forum!!! Så kan man klikke på fks. 1 og komme til den side hvor han så har lagt sit indlæg!!! Forstår jeg rigtig eller hvor går det galt!
Avatar billede sp Nybegynder
27. marts 2001 - 22:28 #27
Nej flere tables flere forums.
hvis man tager summen af f.eks. 5 forums og så tager de 5 nye!
Avatar billede sp Nybegynder
27. marts 2001 - 22:29 #28
Hvis der f.eks. er 55 indlæg i debat1, 100 i debat2 og 200 i debat3.
Det giver 355 debatindlæg.
Jeg skal så have de 5 nyeste.
Avatar billede webben Nybegynder
27. marts 2001 - 22:30 #29
Når okay...! Prøver lige at fikse noget sammen!!! Kan jeg maile det til dig eller har du icq, ved ikke om det kommer til at du. Men det skal det jo
Avatar billede sp Nybegynder
27. marts 2001 - 22:31 #30
Et eksempel kunne være denne streng, men der har jeg jo fastlagt på forhånd hvad mine tables hedder. Altså deres navn.
Det er problemet, ellers udemærket

SELECT TOP 5 * FROM tabel1,tabel2,tabel3 ORDER BY Dato DESC

Avatar billede sp Nybegynder
27. marts 2001 - 22:33 #31
Alså den skal indsætte alle usernames i strengen som Users indeholder.
Avatar billede webben Nybegynder
27. marts 2001 - 22:34 #32
Tror jeg ved hvad du taler om!!!! somsagt fikser jeg lige noget og gir dig et kald!!! Har du email eller lign.
Avatar billede sp Nybegynder
27. marts 2001 - 22:36 #33
SELECT TOP 5 * FROM detbat1,debat2,debat3 ORDER BY Dato DESC
Det er nok noget lignende denne, men den skal bare fortsætte indtil den har indsat alle oplysninger fra \"Users\"

Altså en dynamisk SQL-streng der vælger top5 af de forums, hvor den får navnene på tables fra det table der hedder Users.
Meget generalt. På denne måde skal man ikke ændre i coden, hvergang man opretter nye tables



Avatar billede sp Nybegynder
27. marts 2001 - 22:37 #34
Min ICQ er 33029955
Avatar billede sp Nybegynder
30. marts 2001 - 10:50 #35
Når webben. Hvordan går det med løsningen? :-)
Avatar billede sp Nybegynder
03. april 2001 - 21:59 #36
Nope. Jeg har droppet det.
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