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