/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
Simpelt forum via PHP / MySQL
Fra : Bo Rattenbrog


Dato : 14-01-03 15:14

Jeg er ved at strikke et meget simpelt forum sammen via PHP / MySQL.

Jeg ønsker at den besøgende kan se om der er kommet nogle nye indlæg i
grupperne.
Dette har jeg tænkte mig at gøre på følgende måde:

<A HREF="forum.php?forumId=1&last_added=XX">Gruppe 1</A>

XX indeholder så datoen for det nyeste indlæg i den aktuelle gruppe.

min tabel er så:
CREATE TABLE forum(
id int(10) DEFAULT '0' NOT NULL auto_increment PRIMARY KEY,
_group int(10) NOT NULL,
mother int(1),
title varchar(255),
content varchar(255)
);

Og det første udtræk, hvor der grupperne vises med titel og content, samt
antallet af emner og
svar:

SELECT COUNT(answer.id),
groupMain.title AS groupMain
FROM forum groupMain
LEFT JOIN forum answer ON answer._group = groupMain.id
WHERE answer.id != 0
GROUP BY answer._group

Næste udtræk hvor der er valgt en gruppe:

SELECT COUNT(answer.id) AS count,

subject.title AS subjectTitle,

subject.content AS subjectContent

FROM forum answer

LEFT JOIN forum subject ON answer.mother = subject.id

WHERE subject._group = 6

GROUP BY subject.id

men hvordan laver jeg et udtræk der tager det nyeste emne eller svar fra
hver gruppe ?

Og evt. øvrige kommentarer til ovenstående er velkomne.

Bo



 
 
Bo Rattenbrog (14-01-2003)
Kommentar
Fra : Bo Rattenbrog


Dato : 14-01-03 19:58

Så er jeg kommet frem til nedenstående:

CREATE TABLE forum(
id int(10) DEFAULT '0' NOT NULL auto_increment PRIMARY KEY,
mother int(10),
title varchar(255),
content varchar(255)
);

Første select, hvor grupperne findes, og antallet af emner og svar tælles:
COUNT(subject.id) AS countSubject,
COUNT(answer.id) AS countAnswer,

groupMain.Id AS groupId,
groupMain.title AS groupTitle,
groupMain.content AS groupContent

FROM forum groupMain

LEFT JOIN forum subject ON subject.mother = groupMain.id
LEFT JOIN forum answer ON answer.mother = subject.id

WHERE groupMain.id != 0 AND groupMain.mother = 0

GROUP BY groupMain.id

Hvilket ser ud til at virke, ved næste trin, hvor der er valgt en gruppe,
gør jeg følgende:

SELECT COUNT(answer.id) AS countAnswer,
subject.Id AS subjectId,
subject.title AS subjectTitle,
subject.content AS subjectContent
FROM forum subject
LEFT JOIN forum answer ON answer.mother = subject.id
WHERE subject.mother = gruppeId
GROUP BY subject.id

Hvilket ser ud til at virker ok. Det sidste trin er enkelt nok - SELECT *
FROM forum WHERE mother = $subjectId

Så mangler jeg at få kikket på den sidste del, der anvendes til at oplyse om
en gruppe er opdateret. Jeg ved ikke om det kan kædes sammen med første
trin, eller jeg skal lave et seperat udtræk.

Nogen der kan hjælpe, eller evt. har kommentarer til ovenstående ?

Bo



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408926
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste