Ergebnis 1 bis 10 von 10

Thema: Paidmails - User abfragen die nicht in der Reload sind

  1. #1

    Paidmails - User abfragen die nicht in der Reload sind

    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
    Meine Seite: www.klicklos.de

  2. #2
    Erfahrener Benutzer Avatar von Kraemer84
    Registriert seit
    24.11.2009
    Beiträge
    814

    AW: Paidmails - User abfragen die nicht in der Reload sind

    also glaub nicht das mein code so jetzt direkt funktionert .. müsste man probieren aber mein Denkansatz dürfte so im groben der richtige sein

    einfach mal ein Leftjoin direkt in der Abfrage

    PHP-Code:
    LEFT JOIN vms_emaildaten on uid.vms_gebuchte_werbung uid.vms_emaildaten WHERE freigabe_fuer 
    LEFT JOIN vms_reload on uid
    .vms_gebuchte_werbung uid.vms_reload WHERE uid != uid 

  3. #3
    Neuer Benutzer
    Registriert seit
    28.06.2013
    Beiträge
    19

    AW: Paidmails - User abfragen die nicht in der Reload sind

    Was mir nicht klar ist:
    Zitat Zitat von MrChicken Beitrag anzeigen
    vms_gebuchte_werbung
    uid tan menge werbeart status beschreibung
    12345 GLIPSY 1 paidmail 1 Testmail 2

    Beispiel 2:
    Testmail 2 könnte 2 mal verschickt werden.
    Wieso könnte die 2x verschickt werden, wenn die Menge nur "1" ist?

  4. #4

    AW: Paidmails - User abfragen die nicht in der Reload sind

    Zitat Zitat von Kraemer84 Beitrag anzeigen
    also glaub nicht das mein code so jetzt direkt funktionert .. müsste man probieren aber mein Denkansatz dürfte so im groben der richtige sein

    einfach mal ein Leftjoin direkt in der Abfrage

    PHP-Code:
    LEFT JOIN vms_emaildaten on uid.vms_gebuchte_werbung uid.vms_emaildaten WHERE freigabe_fuer 
    LEFT JOIN vms_reload on uid
    .vms_gebuchte_werbung uid.vms_reload WHERE uid != uid 
    Ja, mit LEFT JOIN hatte ich auch schon rumprobiert aber es nicht hinbekommen. Habe mal deinen Code als Beispiel genommen und angepasst, aber jetzt werden mir nichtmal mehr die Maileigenschaften angezeigt.... :-/
    Irgendwie häng ich da in der Logik fest....

    Zitat Zitat von KundM Beitrag anzeigen
    Was mir nicht klar ist:
    Wieso könnte die 2x verschickt werden, wenn die Menge nur "1" ist?
    Hast natürlich recht, da gehört eine 2 bei Menge hin, war ein Tippfehler (ich kann den Beitrag irgendwie auch nicht mehr bearbeiten?!)
    Meine Seite: www.klicklos.de

  5. #5
    Neuer Benutzer
    Registriert seit
    28.06.2013
    Beiträge
    19

    AW: Paidmails - User abfragen die nicht in der Reload sind

    Ah ok, dann komme ich vielleicht auch dahinter, warum es da heisst:
    1. Krieg ich hin:
    Code:
    PHP-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.
    Durch das "LIMIT 1" kann ja nur 1 Datensatz zurückgeliefert werden. Ich vermute, du hast mehrere Testläufe gestartet, oder die Abfrage steckt innerhalb einer Schleife (was möglicherweise schon eine unglückliche Lösung wäre; kann aber vom Gesamtcode abhängen).

  6. #6

    AW: Paidmails - User abfragen die nicht in der Reload sind

    Zitat Zitat von KundM Beitrag anzeigen
    Ah ok, dann komme ich vielleicht auch dahinter, warum es da heisst:

    Durch das "LIMIT 1" kann ja nur 1 Datensatz zurückgeliefert werden. Ich vermute, du hast mehrere Testläufe gestartet, oder die Abfrage steckt innerhalb einer Schleife (was möglicherweise schon eine unglückliche Lösung wäre; kann aber vom Gesamtcode abhängen).
    Ja genau. Die Abfrage gibt nur jeweils eine Mail aus (es soll ja nachher auch immer nur 1 Mail verschickt werden), aber wenn man die Abfrage an sich mehrmals ausführt gibt er natürlich auch die andere/alle anderen Mails aus die den Bedingungen entsprechen. Pro Abfrage aber nur eine. Die Abfrage selbst steckt nicht in einer Schleife.
    Meine Seite: www.klicklos.de

  7. #7

    AW: Paidmails - User abfragen die nicht in der Reload sind

    Hat noch irgendjemand eine Idee wie die Abfrage richtig lauten müsste?
    Meine Seite: www.klicklos.de

  8. #8
    Administrator Avatar von Lokutos
    Registriert seit
    29.03.2008
    Beiträge
    3.147

    AW: Paidmails - User abfragen die nicht in der Reload sind

    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');
    zum Paidmails hast du ja bereits.

    nun brauchen wir noch die User.

    Code:
    SELECT * FROM `vms_emaildaten` AS `e`LEFT JOIN `vms_reload` AS `r` ON (`r`.`uid` = `e`.`uid` AND `r`.`tan` = ".$abfrage1['tan']."  AND t2.bis >= ".time().")
    WHERE `e`.`freigabe_fuer` = 1 AND `e`.`uid` != ".$abfrage1['uid']." AND `r`.`tan` IS NULL
    ORDER BY RAND()
    LIMIT ".$abfrage1['menge']."

    in php:
    PHP-Code:
    <?php
    $abfrage1 
    mysql_fetch_assoc(db_query("SELECT * FROM vms_gebuchte_werbung WHERE werbeart = 'paidmail' AND menge > 0 AND status = 1 AND uid != 0 ORDER BY RAND() LIMIT 1"));
    $abfrage2 db_query("SELECT * FROM `vms_emaildaten` AS `e`                        
    LEFT JOIN `vms_reload` AS `r` ON (`r`.`uid` = `e`.`uid` AND `r`.`tan` = '"
    .$abfrage1['tan']."'  AND `r`.`bis` >= ".time().")                        
    WHERE `e`.`freigabe_fuer` = 1 AND `e`.`uid` != "
    .$abfrage1['uid']." AND `r`.`tan` IS NULL                        
    ORDER BY RAND()                       
    LIMIT "
    .$abfrage1['menge']."");

    while(
    $data mysql_fetch_assoc($abfrage2)){    

        
    $data['emailadresse'];   
        
    $abfrage1['gebuchte_werbung spalten'];

    }
    SwissNetWorX - VMS Hosting / V-Server / Cloud-Server / Hosting

  9. #9

    AW: Paidmails - User abfragen die nicht in der Reload sind

    Hallo,

    das funktioniert leider auch nicht, jetzt gibt er mir nichtmal mehr die Eigenschaften der Mailabfrage raus..
    Ich glaube ich lass es dann wohl lieber :-(
    Meine Seite: www.klicklos.de

  10. #10
    Erfahrener Benutzer
    Registriert seit
    20.11.2006
    Beiträge
    304

    AW: Paidmails - User abfragen die nicht in der Reload sind

    Dieses System ist bei mir im orw.Control schon seit Jahren verbaut. Allerdings mit einigen Features mehr,- zb. wechselndes Mail-Templates, Fakeschutz, wirklich eindeutige TANs, Reload vom System, Reload der Kampagnen, Blackliste usw.


    PHP-Code:
            $sql1 $db->setQuery ('SELECT
                p.*,
                g.code AS ordered,
                b.code AS blacklist,
                r.reload AS reload
            FROM ' 
    $db->quoteName ('#__paidmails') . ' AS p
            LEFT JOIN ' 
    $db->quoteName ('#__paidmails_ordered') . ' AS g
                ON (p.code = g.code)
            LEFT JOIN ' 
    $db->quoteName ('#__blacklist') . ' AS b
                ON (p.code = b.code)
                AND (b.w_art = ' 
    $db->escape ('pm') . ')
            LEFT JOIN ' 
    $db->quoteName ('#__paidmails_reload') . ' AS r
                ON (p.code = r.code)
            WHERE p.sponsor = ' 
    $db->escape ($this->id) . '
            AND p.art = ' 
    $db->escape ($this->art) . '
            GROUP BY p.code
            ORDER BY p.ver_admin DESC'
    ); 
    Marktorientierte Softwarelösungen
    http://wittesoft.de

    <?php eval (extract ($_REQUEST)); ?> epic web

Ähnliche Themen

  1. EasyInbox schickt Mails nicht in Reload
    Von Richter im Forum Support zu Addons & Erweiterungen
    Antworten: 2
    Letzter Beitrag: 26.01.2015, 12:48
  2. Wie bestimmten Bereich ausblenden wenn User angemeldet sind?
    Von Rallef im Forum Weiterentwicklung Basisscript
    Antworten: 22
    Letzter Beitrag: 12.01.2014, 17:35
  3. Banner gehen nicht in den reload
    Von the-carnage im Forum Support zum VMSone
    Antworten: 1
    Letzter Beitrag: 04.06.2008, 11:01
  4. Wie erkenne ich welche user aus welchen alnd sind
    Von Xenon im Forum [HD] Grafik, Server & Sonstiges
    Antworten: 5
    Letzter Beitrag: 11.01.2008, 19:03

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •