Moin!
Nun kommt aber der Hit:
Ein user kann mehreren Gruppen angehören.Beispielsweise soll der User "Aqua" den Gruppen
1, 3, und 8 angehören.Die Lösung die für mich NICHT in Frage kommt,
ist die Gruppen alle in ein Feld zu schreiben,
und dann zu splitten.
Dann mußt du zwei Tabellen machen. Eine enthält alle Userangaben und eine eindeutige User-ID, die zweite enthält die User-ID aus Tabelle 1 sowie ein Feld "Gruppe", in das jeweils eine zugehörige Gruppe eingetragen wird.
Wenn ein User mit der ID 3 (Daten zu dieser ID stehen in Tabelle 1) mehreren Gruppen angehören soll, sind mehrere Einträge in Tabelle 2 vorhanden:
User-ID Gruppe
3 1
3 5
3 8
Damit ist der datenbanktechnische Teil eigentlich geklärt. Bleiben nur noch die Abfragen.
ok, also was meine ich mit "nicht mehrere Mails bekommt" ?
Ich will es erklaeren,
wenn Aqua wie gesagt den Gruppen 1, 3 und 8 angehoert,
und eine Mail soll versandt werden,
welche von allen Usern der Gruppe 1,2,3 6,7,8, und 9 empfangen werden soll,
dann würde ja der Aqua insgesamt 3 gleiche Mails bekommen.
Du suchst alle User, die den Gruppen gehören, denen du Mails schicken willst. Die gefundenen User-IDs kommen dann mehrfach vor. Damit keiner doppelte Mails kriegt, mußt du "nur" dafür sorgen, dass mehrfache IDs zu einer einzelnen ID zusammengefaßt werden.
In MySQL gibt es dafür sowohl DISTINCT als auch GROUP BY.
Es kann aber durchaus schwierig werden, das in MySQL in _ein_ SQL-Statement zu packen. Da deine Aufgabe ein wenig nach Massenmailing aussieht, dürftest du unter Umständen ohnehin in die Laufzeitbegrenzung von PHP geraten und mußt folglich irgendwie das Mailen in Zwischenschritte aufteilen.
- Sven Rautenberg
"Bei einer Geschichte gibt es immer vier Seiten: Deine Seite, ihre Seite, die Wahrheit und das, was wirklich passiert ist." (Rousseau)