nl pt nl nl nl af nl nl nl nl nl nl es nl nl en nl nl en nl nl en de en nl en nl en en nl en nl en nl nl en nl nl af nl en nl af ca
het probleem is omdat het kan zijn dat het bericht naar meerdere gebruikers wordt verstuurd staat het zo opgeslagen in de row receivers: user1,user2,user3
Afbeelding om het duidelijk te maken:
Nu moet php dit naar elke gebruiker sturen die daar in staat.
Alles wordt in deze functie gezet
public function getMails($folderID){ $query = \Schoolbase\lib\Database::query('SELECT * FROM inbox WHERE folderID="'.(int)$folderID.'" AND receivers'); }
Ik hoop dat jullie mij kunnen helpen.
Sorry voor de onduidelijkheid, ik weet niet hoe ik het goed kan uitleggen.
Ik denk dat je beter een relatie tussen de email en de users kan maken. Je hebt nu namelijk een email alleen, met daarbij al die mensen die aan die email gekoppeld zijn. Dat is best lastig om goed te bouwen. Daarom is de meest simpele manier (en voor jou de overzichtelijkste manier) om het te verdelen over twee tabellen: De emails (inbox) en de user_inbox. De inbox bevat de informatie over de email, en met andere tabel user_inbox koppel je de email aan de gebruiker(s). Voorbeeld
Database tabel inbox met de kolommen ->
Database tabel user_inbox met de kolommen ->
Dan krijg je deze relatie:
De user-kolom staat per rij gekoppeld aan een emailtje en aan een gebruiker. Dus per gebruiker-mail krijg je een rij. Dat ziet er ongeveer zo uit:
Door op deze manier een relatie op te bouwen tussen je database tabellen krijg je een veel-op-veel relatie in je database en houd je informatie mooi gescheiden.
Qua query zal 't er zo uit kunnen zien:
SELECT inbox.* FROM inbox, user_inbox WHERE user_inbox.user_id = 'DE USER ID' AND inbox.id = user_inbox.mail_id
Wat de query doet is: Hij haalt de rijen op van de user_inbox tabel, zoekt naar de emailtjes van de user. Bij die informatie haalt die de informatie van de rij inbox waar de ID van mail_id de ID is in de tabel inbox.
Ik denk dat dit 't ongeveer is. Misschien dat iemand anders dit op een andere manier zou aanpakken. Maar zo zou ik het doen 🙂