Gå til innhold

[LØST] Finne siste tråder - noen gode idéer?


Anbefalte innlegg

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 av madompa
Lenke til kommentar
Videoannonse
Annonse
Gjest Slettet+142

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 :(

Lenke til kommentar

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.

 

:)

Lenke til kommentar
Gjest Slettet+142

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? :)

Lenke til kommentar
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.

Lenke til kommentar
Gjest Slettet+142

ahh. Oki. :p

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 :p

Lenke til kommentar
ahh. Oki. :p

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 :p

8741840[/snapback]

Error :hmm:

 

Var visst en hard nøtt dette :p

Lenke til kommentar

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 av crowly
Lenke til kommentar
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

Lenke til kommentar

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 av crowly
Lenke til kommentar

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.

Lenke til kommentar
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å ;)

Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...