Avatar billede sirerugor Nybegynder
08. juni 2003 - 21:56 Der er 8 kommentarer og
1 løsning

Forum - Inner Joins

Hey dude...
Jeg har lavet forum og er kommet til det problem at jeg ikke kan få Threads sorteret så de Threads med de nyeste Posts sættes øverst og så frem deles... I kender sikkert det at man skal "lede" ned af listen om der er en ny Post in en af Thread'ene. Det er ikke så smart.

Min SQL:
-------------------------------------------------------
strSQL = "SELECT TBLfthreads.bid, TBLfthreads.tid, TBLfthreads.title FROM TBLfthreads INNER JOIN TBLfposts ON TBLfthreads.tid = TBLfposts.tid WHERE TBLfthreads.bid=" & bid & " ORDER BY TBLfposts.at DESC"

( tid = Title ID, bid = Board ID, at = Dato :P )

Håber der er en der kan hjælpe.

Ps. Det haster, mit forum kører nemlig i forvejen....
Hvis nogen vil se sååe: http://www.exc.dk/forum.asp

//Sir Erugor aka. MSK
Avatar billede wilweb Nybegynder
08. juni 2003 - 22:30 #1
Bare en lille bemærkning til nogle oplysninger på dit web-site. Jeg tror du har skrevet forkert time pris! eller tager du kun Kr. 150 i timen incl. moms?
Avatar billede netro Nybegynder
09. juni 2003 - 03:18 #2
Du kan sortere efter det nyeste indlæg (TBLfthreads.at):

strSQL = "SELECT Max(TBLfthreads.at) As MaxDato, TBLfthreads.bid, TBLfthreads.tid, TBLfthreads.title FROM TBLfthreads INNER JOIN TBLfposts ON TBLfthreads.tid = TBLfposts.tid WHERE TBLfthreads.bid=" & bid & " ORDER BY Max(TBLfthreads.at) DESC"

- eller (afhængig af din db):

strSQL = "SELECT Max(TBLfthreads.at) As MaxDato, TBLfthreads.bid, TBLfthreads.tid, TBLfthreads.title FROM TBLfthreads INNER JOIN TBLfposts ON TBLfthreads.tid = TBLfposts.tid WHERE TBLfthreads.bid=" & bid & " ORDER BY MaxDato DESC"
Avatar billede netro Nybegynder
09. juni 2003 - 03:24 #3
Ja, og du har 4 fejl i din første salgssætning. :o)

"Gizom udarbejde web-portaler i enkelt og stilrene design til internettet."
~
"Gizom udarbejder web-portaler i enkle og stilrene designs til Internettet."
Avatar billede wilweb Nybegynder
09. juni 2003 - 10:46 #4
Hold da helt kæft :o Jeg har endda givet 250 i timen for at få læst korrektur :>
Avatar billede sirerugor Nybegynder
09. juni 2003 - 11:14 #5
Jeg får fejl ved begge... Men det kan jo rettes til.. :D

Ved denne her:
-------------------------------------------------
strSQL = "SELECT Max(TBLfthreads.at) As MaxDato, TBLfthreads.bid, TBLfthreads.tid, TBLfthreads.title FROM TBLfthreads INNER JOIN TBLfposts ON TBLfthreads.tid = TBLfposts.tid WHERE TBLfthreads.bid=" & bid & " ORDER BY MaxDato DESC"

Får jeg fejlen:
-------------------------------------------------
ADODB.Recordset.1 error '80004005'
SQLState: S1000
Native Error Code: 1140
[TCX][MyODBC]Mixing of GROUP columns (MIN(),MAX(),COUNT()...) with no GROUP columns is illegal if there is no GROUP BY clause
/forum.asp, line 1081


Ved denne her:
-------------------------------------------------
strSQL = "SELECT Max(TBLfthreads.at) As MaxDato, TBLfthreads.bid, TBLfthreads.tid, TBLfthreads.title FROM TBLfthreads INNER JOIN TBLfposts ON TBLfthreads.tid = TBLfposts.tid WHERE TBLfthreads.bid=" & bid & " ORDER BY Max(TBLfthreads.at) DESC"

Får jeg fejlen:
-------------------------------------------------
ADODB.Recordset.1 error '80004005'
SQLState: S1000
Native Error Code: 1111
[TCX][MyODBC]Invalid use of group function
/forum.asp, line 1081


Håber du (netro) eller andre kedner dette problem.. :)
Avatar billede sirerugor Nybegynder
09. juni 2003 - 11:46 #6
netro kan jeg ik få din email? -msn? -icq? Vil gerne lige snakke med dig om dette, da jeg har fundet ud af noget nyt plus at det jo ikek virker...
Avatar billede sirerugor Nybegynder
09. juni 2003 - 16:00 #7
lukker og åbner et andet sted
Avatar billede netro Nybegynder
10. juni 2003 - 02:52 #8
Ja, du skal lige have en Group By på:

strSQL = "SELECT Max(TBLfthreads.at) As MaxDato, TBLfthreads.bid, TBLfthreads.tid, TBLfthreads.title FROM TBLfthreads INNER JOIN TBLfposts ON TBLfthreads.tid = TBLfposts.tid WHERE TBLfthreads.bid=" & bid & " GROUP BY TBLfthreads.bid, TBLfthreads.tid, TBLfthreads.title ORDER BY Max(TBLfthreads.at) DESC"
Avatar billede sirerugor Nybegynder
10. juni 2003 - 11:59 #9
Den giver ingen fejl men virker heller ikke optimalt.. Jeg omkrev den til denne, da det jo er TBLfposts.at jeg skal bruge..:

strSQL = "SELECT Max(TBLfposts.at) As MaxDato, TBLfthreads.bid, TBLfthreads.tid, TBLfthreads.title FROM TBLfthreads INNER JOIN TBLfposts ON TBLfthreads.tid = TBLfposts.tid WHERE TBLfthreads.bid=" & bid & " GROUP BY TBLfthreads.bid, TBLfthreads.tid, TBLfthreads.title ORDER BY MaxDato DESC"

I midlertid har jeg lavet et felt i TBLfthreads, lastpost, som bliver updateret hver gang en bruger reply'er. Men det vil jeg helst ikke have sådan... Men den rigtige SQL. :)

Kan jeg ik få din mail, icq, msn eller noget? - Det er lidt nemmere at snakke så..
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