Es ist Montag und ich kann schon nicht mehr klar denken :-D

Erst mal eben die Tabellen die ich habe:
vms_gebuchte_werbung
uid tan menge werbeart status beschreibung
36242 GLOERF 36 paidmail 1 Testmail 1
12345 GLIPSY 1 paidmail 1 Testmail 2
... ... ... ... ... ...

vms_emaildaten
uid emailadresse freigabe_fuer
36242 36242@test.test 1
12345 12345@test.test 1
13579 13579@test.test 0
24680 24680@test.test 1
09876 09876@test.test 1

vms_reload
uid tan bis
12345 GLOERF 1504192934
... ... ...

So. Was ich möchte:

  1. Es soll eine Paidmail zufällig ausgewählt werden
  2. Diese Paidmail an maximal so viele User zufällige(!) verschickt werden wie noch Paidmails da sind (vms_gebuchte_werbung "menge")
  3. An User verschickt werden, die den Paidmailversand aktiviert haben (vms_emaildaten "freigabe_fuer = 1")
  4. An die User verschickt werden die nicht Eigentümer der Mail sind (also ihre eigene E-Mail sollen sie nicht bekommen (vms_gebuchte_werbung (uid))
  5. An alle User verschickt werden die für diese Mail nicht im Reload sind (vms_reload "bis < time()") ODER überhaupt nicht in der vms_reload stehen


Beispiel 1:
Testmail 1 könnte 36 mal verschickt werden, wird aber nur verschickt an UID 24680 und 09876 (siehe vms_emaildaten) (13579 will keine Paidmails, 12345 ist noch im Reload und 36242 ist der Werbebucher und bekommt die eh nicht).

Beispiel 2:
Testmail 2 könnte 2 mal verschickt werden. UID 36242 bekommt sie und 24680 auch (12345 ist der Eigentümer, 13579 will keine Paidmails, 09876 würde sie theoretisch auch bekommen, aber es gibt nicht genug Mails). Am nächsten Tag (wenn keiner der User im Reload ist und die Mail noch vorhanden ist), würde sie vielleicht an 24680 und 09876 gehen, aber nicht an 36242 (halt zufällig ausgewählt)

1. Krieg ich hin:
Code:
$mails = db_query('SELECT * FROM vms_gebuchte_werbung WHERE werbeart = "paidmail" AND menge > 0 AND status = 1 AND uid != 0 ORDER BY RAND() LIMIT 1');
Es wird eine zufällige Paidmail ausgewählt, die von einem User gebucht wurde, aktiv ist und noch geklickt werden kann.
Der Code gibt mir richtigerweise beide Paidmails raus.

Bei dem Rest komm ich aber nicht weiter. Entweder er wählt gar keinen User aus, nur die die in der Reloadsperre sind oder er verschickt sie an alle User die Paidmails wollen inklusive derer die eigentlich schon im Reload sind......

Kann mir jemand helfen und mir den Code geben mit dem ich die User richtig auswähle?

Gruß,
MrChicken