tracking-system i forum
Godmorgen!Jeg vurderer at dette spørgsmål høre hjemme under MySQL kategorien, da det er en SQL jeg vil have fingrene i :P
Jeg er ved at lave et forum i PHP, der til forveksling minder om phpBB.
For dem som kender phpBB er der et tracking-system, som gør at de emner man deltager i, og som indeholder nye indlæg, vil blive markeret med en gul dims i listen over emner.
Det forsøger jeg så med al min erfaring at gøre efter, men det lykkedes man kun til en hvis grad:
Jeg kan kun få netop de emner ud med nye indlæg ud i en mysql_fetch_array(). Dvs at jeg først skal hente dem ud i min oversigt over emner, og huske deres id'er så jeg kan trække dem fra i næste udtræk af resten af emnerne i det pågældende forum - og det er jo ikke særligt fedt, på så mange måder !)
Så det jeg kort og godt vil opnå er at kunne trække alle emner ud i en array, og lige sætte et felt til "nye_indlaeg" etc. sådan at jeg kan:
a) sortere efter dem og viser dem hht. først eller sidst i oversigten
b) kan bestemme anderledens udseende på dem.
Det som jeg har fået til at virke fungere på følgende tekniske facon:
Jeg har en tabel med emner (threads) og en med tracking (tracking).
I tabellen tracking er der een række for hver bruger der har deltaget i eet emnet, med deres sidst pågældende data+tid (trackStamp).
Udtrækket kommer så til at se således ud:
SELECT DISTINCT(A.threadID), A.*, MAX(A.threadDateTime) AS MaxOfDate, IF(MAX(A.threadDateTime) > B.trackStamp, 1, 0) AS trackOld, B.trackStamp FROM threads A, tracking B WHERE A.threadForum = $_GET[id] AND B.trackUser = '$_SESSION[bruger]' AND A.threadGroup = B.trackThread
GROUP BY A.threadGroup, B.trackStamp HAVING trackOld = 1 ORDER BY trackOld DESC, B.trackStamp, A.threadDateTime ASC
Er der nogen her der har en god idé eller løsning på mit problem, så jeg kan komme videre?
