Probleem met opstellen juiste query

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Bert Van den Brande

Bert Van den Brande

21/06/2013 20:18:07
Quote Anchor link
Ik heb volgende 2 tabellen
in t_mededeling staat het volgende
d_mededeling_id
d_mededeling en
d_wanneer_geplaatst

in t_gelezen staat
d_gelezen_id
t_user_d_user_id (link naar id van t_user)
t_mededeling_d_mededeling_id (link naar id van t_mededeling) en
d_wanneer gelezen

Als een scheidsrechter inlogt moet ik de ongelezen mededelingen voor deze scheidsrechter zichtbaar maken.
Als hij dan op gelezen klikt verdwijnt deze ongelezen melding van het scherm.

Het wilt niet lukken om een correcte query/view op te stellen.

Kan er iemand helpen?
 
PHP hulp

PHP hulp

19/12/2024 18:08:53
 
Reshad F

Reshad F

21/06/2013 20:49:15
Quote Anchor link
ik begrijp je tabellen niet helemaal maar ik denk dat je zoiets nodig hebt

tabel scheidsrechters
tabel mededelingen
koppeltabel gelezen_mededelingen

vervolgens krijg je de scheidsrechters en hun info in de tabel scheidsrechters en de mededelingen in de tabel mededelingen. Vervolgens kan je in je koppeltabel bijhouden welke scheidsrechter een bericht gelezen heeft of niet. Die tabel ziet er als volgt uit ongeveer

scheidsrechter_id : mededelingen_id : datum_gelezen

vervolgens moet je vanuit daar je query opzetten om de juiste mededeling voor de juiste scheidsrechter te geven.
 
Bert Van den Brande

Bert Van den Brande

21/06/2013 20:57:06
Quote Anchor link
ik heb al een tabel scheidsrechters
en heb een tabel mededelingen met een id, de mededeling zelf en wanneer deze geplaatst is

in m'n tabel t_gelezen komt een id, de user id van d sr, de id van tabel mededeling en wanneer gelezen

Bedoel je dat ik nog een 3de tabel nodig heb om deze gegevens aan elkaar te koppelen?
 
Erwin H

Erwin H

22/06/2013 00:04:18
Quote Anchor link
Je t_gelezen tabel is al de koppeltabel.

Als je de ongelezen mededelingen wilt hebben moet je alle mededelingen selecteren, daaraan de gelezen records joinen (op basis van de ingelogde user) en vervolgens filteren op de ongelezen mededelingen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
SELECT a.d_mededeling
FROM a.t_mededeling
LEFT JOIN t_gelezen b ON (
  a.d_mededeling_id = t_mededeling_d_mededeling_id
  AND b.t_user_d_user_id = ...
)
WHERE b.d_gelezen_id IS NULL

(op de puntjes vul je het id in van de ingelogde user)
Gewijzigd op 22/06/2013 00:06:13 door Erwin H
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.