madompa Skrevet 26. mai 2007 Skrevet 26. mai 2007 (endret) Jeg har en tabell hvor jeg har alle innleggene i et forum. I hver "post" (eller hva man kaller det) står det hvilken tråd innlegget tilhører. I tillegg har den en status. Statusen må være 1 hvis den skal kunne vises. Det jeg trenger er et skript som finner de fem siste trådene som det er postet innlegg i. Den samme tråden skal ikke forekomme flere ganger, altså de siste 5 forskjellige trådene det er blitt skrevet i. Har prøvd meg litt frem, men har det med å skrive unødvendig lange skript. Noen som har noen tips, enten i form av ferdig kode eller fremgangsmåte? Edit: glemte å si at statusen på innlegget må være 1 hvis tråden skal telles, hvis dere skjønner Endret 31. mai 2007 av madompa
Gjest Slettet+142 Skrevet 26. mai 2007 Skrevet 26. mai 2007 Jeg skjønner ikke helt hva du spør om her :/ Men det du vil, er at vi skal lage SQL-en? SELECT DISTINCT * FROM posts p INNER JOIN emner e ON p.emneid=e.id WHERE e.status=1 ORDER BY p.tid DESC LIMIT 5 Det er alt jeg kan lage utifra den info du har gitt. Og du må garantert endre på den. Men har jeg skjønt hva du vil? SQL-en må sikkert endres litt av en som kan litt mer SQL enn meg
Crowly Skrevet 26. mai 2007 Skrevet 26. mai 2007 (endret) Edit: Ooops driver visst med vrang lære Endret 26. mai 2007 av crowly
madompa Skrevet 30. mai 2007 Forfatter Skrevet 30. mai 2007 Jeg fikk ikke den spørringen til å fungere.. Forklart kanskje litt uklart, men trenger enten en MySQL-spørring eller blanding av PHP og spørring. Har to tabeller: forum_innlegg innleggid emneid (hvilket emne innlegg hører til) timestamp status (denne må være 1 hvis innlegget skal telles) forum_emner emneid navn Det jeg er ute etter er en liste med de 5 siste (forskjellige) emnene som det er postet et innlegg i.
Gjest Slettet+142 Skrevet 30. mai 2007 Skrevet 30. mai 2007 SELECT DISTINCT * FROM forum_innlegg p INNER JOIN forum_emner e ON p.emneid=e.emneid WHERE e.status=1 ORDER BY p.timestamp DESC LIMIT 5 Noe som dette da?
madompa Skrevet 30. mai 2007 Forfatter Skrevet 30. mai 2007 SELECT DISTINCT * FROM forum_innlegg p INNER JOIN forum_emner e ON p.emneid=e.emneid WHERE e.status=1 ORDER BY p.timestamp DESC LIMIT 5 Noe som dette da? 8741713[/snapback] (gjorde om e.status til p.status. vel?) Hm.. Jeg får det fortsatt ikke helt til, jeg får opp de siste 5 innleggene, men alle er skrevet i samme emne.
Gjest Slettet+142 Skrevet 30. mai 2007 Skrevet 30. mai 2007 ahh. Oki. Se om jeg kan få det til med denne da SELECT * FROM forum_innlegg p INNER JOIN DISTINCT forum_emner e ON p.emneid=e.emneid WHERE p.status=1 ORDER BY p.timestamp DESC LIMIT 5 Jeg vet ikke, men håper at denne virker
madompa Skrevet 30. mai 2007 Forfatter Skrevet 30. mai 2007 ahh. Oki. Se om jeg kan få det til med denne da SELECT * FROM forum_innlegg p INNER JOIN DISTINCT forum_emner e ON p.emneid=e.emneid WHERE p.status=1 ORDER BY p.timestamp DESC LIMIT 5 Jeg vet ikke, men håper at denne virker 8741840[/snapback] Error Var visst en hard nøtt dette
Crowly Skrevet 30. mai 2007 Skrevet 30. mai 2007 (endret) Prøv denne SELECT max(t1.innleggid), max( t1.emneid ) , t2.navn FROM forum_innlegg t1,forum_emner t2 WHERE t1.emneid = t2.emneid AND t1.status=1 GROUP BY t1.emneid ORDER BY t1.innleggid DESC men er ikke 100% sikker på at den vil fungere slik du ønsker, kanskje du må bytte ut max(t1.innleggid) med max(t1.timestap) Endret 30. mai 2007 av crowly
madompa Skrevet 30. mai 2007 Forfatter Skrevet 30. mai 2007 Prøv denne SELECT max(t1.innleggid), max( t1.emneid ) , t2.navn FROM forum_innlegg t1,forum_emner t2 WHERE t1.emneid = t2.emneid AND t1.status=1 GROUP BY t1.emneid ORDER BY t1.innleggid DESC men er ikke 100% sikker på at den vil fungere slik du ønsker, kanskje du må bytte ut max(t1.innleggid) med max(t1.timestap) 8742464[/snapback] Hm.. Jeg får opp en slags rekkefølge, men det er ikke den rekkefølgen jeg er ute etter, veit egentlig ikke helt hva den rekkefølgen der er :S
Crowly Skrevet 30. mai 2007 Skrevet 30. mai 2007 (endret) Har du mulighet til å eksportere databasen til en sql fil (legg ved her, eller send en pm for epost adrsse), og lage ett eksempel på en rekkefølge du ønsker. Da blir det litt enklere, for meg i alle fall, å teste litt frem og tilbake for å se om jeg kan få til en løsning. Nå fomler jeg litt i halvblinde. Endret 30. mai 2007 av crowly
Martin A. Skrevet 30. mai 2007 Skrevet 30. mai 2007 SELECT DISTINCT(e.emneid), e.navn, i.innleggid, i.emneid, i.timestand, i.status FROM innlegg i LEFT JOIN emner e ON (e.emneid=i.emneid) WHERE i.status=1 ORDER BY i.timestamp DESC LIMIT 0, 5 maybe?
FraXinuS Skrevet 31. mai 2007 Skrevet 31. mai 2007 Du kan prøve denne: SELECT e.navn FROM forum_emner AS e ORDER BY (SELECT i.timestamp FROM forum_innlegg AS i WHERE i.emneid=e.emneid AND i.status=1 ORDER BY i.timestamp DESC LIMIT 1) DESC LIMIT 5 Tror den skal gøre det du vil.
madompa Skrevet 31. mai 2007 Forfatter Skrevet 31. mai 2007 Du kan prøve denne: SELECT e.navn FROM forum_emner AS e ORDER BY (SELECT i.timestamp FROM forum_innlegg AS i WHERE i.emneid=e.emneid AND i.status=1 ORDER BY i.timestamp DESC LIMIT 1) DESC LIMIT 5 Tror den skal gøre det du vil. 8746631[/snapback] Jess, den funket Takk skal du ha Takk til dere andre også
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå