Gå til innhold

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


Anbefalte innlegg

Skrevet (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 av madompa
Videoannonse
Annonse
Gjest Slettet+142
Skrevet

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

Gjest Slettet+142
Skrevet

DESC er synkenes ;)

Skrevet

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

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

Skrevet
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

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

Skrevet
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

Skrevet (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 av crowly
Skrevet
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

Skrevet (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 av crowly
Skrevet

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?

Skrevet

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.

Skrevet
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å ;)

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å
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...