Jeg er ved at lave et forum. Og på forsiden til forummet vil jeg gerne have lavet således, at man kan se hvem der har skrevet den sidste post/indlæg i mine subforums.
Hvordan kan jeg lave det sådan at på www.badenudist.dk/stakroge/forum.asp, at man kan se hvilken bruger der sidst har posted, enten ved at ligge et reply i mit sub forum. eller ved at de har oprettet et nyt topic.
hvis i stadig ikke ved hvad jeg mener så vil jeg have det således, at uanset om men poster replys, eller laver topics. Så skal det nyester reply eller topic stå på forsiden.
Støv, fibre og metalliske partikler kan påvirke både uptime, levetid og driftssikkerhed. Derfor arbejder flere datacentre systematisk med contamination control.
Hvis du vil vise brugernavn for seneste topic så noget ala Select bruger.brugernavn From bruger Inner Join topic On bruger.id = topic.brugerid Order By dato,klokken Limit 1 Tilsvarende for reply Select bruger.brugernavn From bruger Inner Join reply On bruger.id = reply.brugerid Order By dato,klokken Limit 1
Ja, det er jo også det jeg tænkte. Men det skal være så det virker på begge måder på en gang. Sådan at uanset om man poster nyt reply eller ny topic, så er det det nyeste der står på forsiden.
Jeg skal nærmest have slået de 2 tabeller sammen.
Fx hvis jeg laver et topic der heder " hej alle sammen, har i haft en god weekend?" så kommer mit navn, og klokkeslettet jeg skrev det, til at stå på forsiden ud for det subforum jeg har skrevet det i.
Men hvis en anden så pludselig svare på mit topic, så skal hans brugernavn stå forrest ude på forsiden.
Utestet, men mon ikke noget ala følgende ville gøre det. Altså først slå tabellerne topic og reply sammen med Union og dernæst Joine med bruger Select bruger.brugernavn From bruger Inner Join (Select brugerid,klokken,dato From topic Union Select brugerid, klokken,dato From reply) As total On bruger.id = total.brugerid Order By total.dato,total.klokken Limit 1
Nu har jeg aldrig brugt Union før og hele den sql streng du laver der ser meet forvirrende ud. men.
strSQL = "Select bruger.brugernavn From bruger Inner Join (Select brugerid,klokken,dato From topic Union Select brugerid, klokken,dato From reply) As total On bruger.id = total.brugerid Order By total.dato,total.klokken Limit 1" Set rrs = Conn.Execute(strSQL) = rrs("total") rrs.close
Giver mig en fejl der ser således ud
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'total.klokken Limit 1'.
Jeg har ikke testet den. men vil mene den burde være rimelig ok. Kan ikke se hvilken operator den mangler som den siger. HAr du prøvet blot fjerne LIMIT 1 og se hvad den så siger?
<% strSQL = "Select bruger.brugernavn From bruger Inner Join (Select brugerid,klokken,dato From topic Union Select brugerid, klokken,dato From reply) As total On bruger.id = total.brugerid Order By total.dato,total.klokken" Set rrs = Conn.Execute(strSQL) = rrs("total") rrs.close %>
Giver denne fejl
ADODB.Recordset error '800a0cc1'
Item cannot be found in the collection corresponding to the requested name or ordinal.
hvad betyder det her? --- Set rrs = Conn.Execute(strSQL) = rrs("total") rrs.close -- Du sætter ingenting = rrs("total") ? Linje 169 er det = rrs("total") For det eneste du får ud af queryen er brugernavnet :o)
Din sql siger : Select bruger.brugernavn Ergo har du kun selected "brugernavn" Du kan derfor ikke sige: rrs("total") Da du ikke har udvalgt en total som jeg skrev sidst :o)
Men strSQL = "Select bruger.brugernavn From bruger Inner Join (Select brugerid,klokken,dato From topic Union Select brugerid, klokken,dato From reply) As total On bruger.id = total.brugerid Order By total.dato,total.klokken" Set rrs = Conn.Execute(strSQL) = rrs("brugernavn") rrs.close Fungere heller ikke .. du kan se hvad der sker på badenudist.dk/stakroge/forum.asp
kigger lige Men dit start spørgsmål var --- Hvordan kan jeg lave det sådan at på www.badenudist.dk/stakroge/forum.asp, at man kan se hvilken bruger der sidst har posted, enten ved at ligge et reply i mit sub forum. eller ved at de har oprettet et nyt topic. --- Som intet siger om total...så derfor har jeg ikke lavet en total.. kan jo ikke læse tanker ;o) ..hmm desværre kunne være sjovt ellers :o)
Grundet til jeg prøvet at skrive total er fordi jeg troede at dette "brugerid, klokken,dato From reply) As ----->total<------ On bruger.id " dette var noget der definerede værdien af det der skulle skrives ud .
Men der er jo nok en fejl i den sql så. Jeg kan ikke lige gennemskue hvordan man ellers skulle joine tabellerne desværre Prøv evt stille spørgsmålet i database kategorien Der sidder en masse database hajer som vil kunne give dig den helt rigtige sql sætning på notime garanteret :o)
men prøv post det i database kategorien. Sql er rimeligt universalt, rimeligt, så dem som kender mysql eller andre vil nok kunne hjælpe selv om det er access database du har
Cult. Men det sql du skrev her hvad ville det nødagtig udskrive ?
fordi det ligner, og er = rrs("brugernavn") ikke den rigtige måde at udskrive det på ?
Tror nemlig at jeg har beskrevet det meget dårligt, selv om jeg har gjor det så godt som jeg kunne, er det en svær fonktion at forklare (selv om den er meget simpel)
Set rrs = Conn.Execute("SELECT topic.time, bruger.brugernavn FROM topic INNER JOIN bruger ON bruger.id = topic.brugerID WHERE topic.forumID="& rs("f_id")&" UNION ALL SELECT reply.time, bruger.brugernavn FROM reply INNER JOIN bruger ON bruger.id = reply.brugerID WHERE reply.forumID="& rs("f_id")&" ORDER BY time desc")
sådan skulle det gøres :p det tog mig så flere dage at komme frem til det :D og specielt pga en ven der er SQL guru fungere det nu
Synes godt om
Ny brugerNybegynder
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.