Ik heb een probleempje met een query. Met een eigen geschreven cms is er de mogelijkheid om op blogitems te reageren. De tabellen zien er dan als volgt uit:
Ik heb expres het profiel en de user tabel gescheiden gehouden, zo hou je je user-managment gescheiden van alle off-topic meuk als hobbies, msn adres etc. Het is wel 1:1 informatie, maar deze overweging moet niet zoveel uitmaken voor de fout in de query.
Zoals je ziet is het dus mogelijk in de database om "anoniem" te reageren: je hoeft niet geregistreerd te staan om een reactie achter te laten. Hiervoor moet je wel een naam en geldig email adres invoeren, de website is optioneel. Dus: of user_id is leeg, of user_name en user_email zijn leeg. Alle drie leeg kan niet.
Tot slotte de query die alle reacties (en andere benodigde informatie) ophaalt bijbehorend bij een bepaald artikel:
En ik weet natuurlijk niet meer wat ik gewijzigd heb 
Hoe het fout gaan kan je bijvoorbeeld hier zien: http://juriansluiman.nl/b...kend-al-pakjesavond?.html
Het bericht van "bas" is een anoniem bericht, die van floris en van mij (jurian) zijn van ingelogde gebruikers. Maar er klopt niets meer van, de berichten worden drie keer opgehaald
De database is een MySQL geval. Kan iemand mijn query nakijken, want ik staar me er een aantal dagen gek op, maar het juiste komt er niet uitrollen...
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| plugin_user_users
id
name
plugin_user_profile
id -> plugin_user_users.id
email
website
plugin_blog_reactions
id
news_id -> plugin_blog_items.id
user_id -> plugin_users_id
user_name
user_email
user_website
message |
Ik heb expres het profiel en de user tabel gescheiden gehouden, zo hou je je user-managment gescheiden van alle off-topic meuk als hobbies, msn adres etc. Het is wel 1:1 informatie, maar deze overweging moet niet zoveel uitmaken voor de fout in de query.
Zoals je ziet is het dus mogelijk in de database om "anoniem" te reageren: je hoeft niet geregistreerd te staan om een reactie achter te laten. Hiervoor moet je wel een naam en geldig email adres invoeren, de website is optioneel. Dus: of user_id is leeg, of user_name en user_email zijn leeg. Alle drie leeg kan niet.
Tot slotte de query die alle reacties (en andere benodigde informatie) ophaalt bijbehorend bij een bepaald artikel:
code:
Dit werkte _eerst_ wel, maar door een wijziging klopt er niets meer van 1
2
3
4
5
6
7
| SELECT R.id, U.name, U.id AS user_id, R.user_name, R.message, R.user_email, R.user_url AS user_website, P.website FROM plugin_user_profile AS P, plugin_blog_reactions AS R LEFT JOIN plugin_user_users AS U ON R.user_id=U.id AND P.id=U.id WHERE R.news_id=[insert article id] ORDER BY date ASC |
Hoe het fout gaan kan je bijvoorbeeld hier zien: http://juriansluiman.nl/b...kend-al-pakjesavond?.html
Het bericht van "bas" is een anoniem bericht, die van floris en van mij (jurian) zijn van ingelogde gebruikers. Maar er klopt niets meer van, de berichten worden drie keer opgehaald
De database is een MySQL geval. Kan iemand mijn query nakijken, want ik staar me er een aantal dagen gek op, maar het juiste komt er niet uitrollen...