ben ik bezig met een forum maken, maar ik kom niet uit het volgende:

ik wil als er een nieuw bericht geplaatst wordt, en het lid heeft het nog niet gelezen, dat er dan ee sterretje komt. als het lid het bericht daan leest gaat het sterretje weer weg.

ik heb geen idee hoe ik dit moet doen. ik heb al meerdere manieren geprobeerd, maar het lukt niet. kan iemand mij helpen?
Maak een koppeltabel
user - bericht.

Hou daar bij user_id, bericht_id, tijd.
Is er nog geen record (combinatie user_id - bericht_id): echo sterretje
Kan. Of de wat simpele manier, een extra kolom met actief, ja of nee..
Niels Kieviet op 16/12/2010 11:37:14

Kan. Of de wat simpele manier, een extra kolom met actief, ja of nee..


Hoe wil je dat doen? Welke tabel moet er überhaupt volgens jou een extra kolom krijgen?

Als je een n:m, of *:*, of meervoudige relatie hebt, dan zul je per definitie een koppeltabel moeten gebruiken.
Ik bedoelde, dat de tabel waarin de berichten worden opgeslagen extra kolommetje kreeg.


Als je een n:m, of *:*, of meervoudige relatie hebt, dan zul je per definitie een koppeltabel moeten gebruiken

Daar heb je helemaal gelijk in.
Niels Kieviet op 16/12/2010 12:02:06

Ik bedoelde, dat de tabel waarin de berichten worden opgeslagen extra kolommetje kreeg.


Als je een n:m, of *:*, of meervoudige relatie hebt, dan zul je per definitie een koppeltabel moeten gebruiken

Daar heb je helemaal gelijk in.


Dat kan dus niet.
@Karl

Waarom kan het niet? Volgens mij snappen wij elkaar niet? Voorbeeld, je hebt zo'n soort tabel:

message_id,
name,
message,
datetime

etc

en daar gooi je een extra kolom met 'active' in en kies je eventueel voor een enum voor ja nee. En met een update query zet je zo nodig active op een andere waarde. Hoe kan dat volgens jouw dan niet?
Hoe weet je dan per gebruiker of een lid het gelezen heeft?
TJVB tvb op 16/12/2010 12:27:42

Hoe weet je dan per gebruiker of een lid het gelezen heeft?


Inderdaad. Je moet voor iedere gebruiker opslaan of hij het reeds gelezen heeft of niet. En dat kan je niet zonder koppeltabel. Je kan moeilijk bij dat extra veld alle id's van gebruikers die het hebben gelezen met komma's gescheiden opslaan, eh :)
je zou (beetje vergezocht misschien) je tabel maken met :
message_id,
name,
message,
datetime,
active,
poster_id

en dan wanneer het bericht geopent word
if($row['active'] == 1 bijvoorbeeld
if($_SESSION['userid'] == $row['poster_id']){
een popupje met bijv: Ik ben de poster en hebt het gelezen, klik hier om door te gaan, en via die link update je active naar 0 of 2 en krijg je die pop up niet meer


edit:
of gaat dit voor alle leden apart, een bevesitigng?
Het moet toch allemaal niet zo ingewikkeld. Doe het gewoon zoals Kris zegt:
Kris Peeters op 16/12/2010 10:24:37

Maak een koppeltabel
user - bericht.

Hou daar bij user_id, bericht_id, tijd.
Is er nog geen record (combinatie user_id - bericht_id): echo sterretje


Meer is het niet.

Reageren