Ik ben bezig om een module te verbeteren die aangeeft wie er op dat moment online zijn op de website. Ik maak hierbij gebruik van twee tabellen, één die de bezoekers registreert en één members tabel. De tabellen zien er ongeveer zo uit:
inf_first is hierbij de voornaam van de member.
Wat er dus gebeurd is, een bezoeker komt op de website en wordt geregistreerd met 'member_id' NULL, als hij inlogt wordt dit zijn eigen member_id.
Ik wil dus uit de dbase een lijst met alle mensen die de afgelopen 5 minuten nog op de website waren met 'Gast' als ze niet ingelogt hebben, hebben ze dat wel, dan wil ik de nickname, of als die niet aanwezig is de voornaam. Dit alles vanuit 1 query....
Ik loop er nu al een aardige tijd mee te rotzooien, en iets wat ik nu heb is:
Maar met deze query krijg ik niet de niet-ingelogde users!!!
Wie heeft er ideeen?
| Tbl online | |
| session_id | varchar, not null |
| last_touch | datetime, not null |
| member_id | int, null |
| Tbl member | |
| id | int, not null |
| nickname | tinytext, null |
| inf_first | tinytext, not null |
inf_first is hierbij de voornaam van de member.
Wat er dus gebeurd is, een bezoeker komt op de website en wordt geregistreerd met 'member_id' NULL, als hij inlogt wordt dit zijn eigen member_id.
Ik wil dus uit de dbase een lijst met alle mensen die de afgelopen 5 minuten nog op de website waren met 'Gast' als ze niet ingelogt hebben, hebben ze dat wel, dan wil ik de nickname, of als die niet aanwezig is de voornaam. Dit alles vanuit 1 query....
Ik loop er nu al een aardige tijd mee te rotzooien, en iets wat ik nu heb is:
code:
1
2
3
4
5
6
7
8
9
| SELECT DISTINCTROW
IF( member.nickname IS NOT NULL,
IF( member.nickname='',
member.inf_first,
member.nickname),
member.inf_first ) AS display, member.id
FROM online
LEFT JOIN member ON member.id = online.member_id
WHERE online.member_id IS NOT NULL |
Maar met deze query krijg ik niet de niet-ingelogde users!!!
Wie heeft er ideeen?
[ Voor 4% gewijzigd door mr_wizard op 20-03-2005 15:23 ]
R&D professional