Adressen, die in mehreren Gruppen sind, suche

2009-11-23
2013-05-29
  • Nobody/Anonymous

    hallo. erstmal ein lob für das tolle newslettersystem!
    gibt es eine möglichkeit die adressen anzeigen zu lassen, die in mehreren adressgruppen sind?
    hab mir sowas geabastelt, aber ist natürlich sehr unübersichtlich, weil nicht die adressen und die namen der gruppen angezeigt werden, sondern nur die ids der referenztabelle.

        SELECT * FROM `tellmatic__adr_grp_ref` WHERE adr_id IN (  SELECT adr_id FROM `tellmatic__adr_grp_ref` GROUP BY adr_id HAVING count( * ) >1 ) ORDER BY `tellmatic__adr_grp_ref`.`adr_id` ASC

     
  • vizzy

    vizzy - 2009-12-03

    ja, das ist eigentlich sehr einfach, wenn auch kein optimierter code. (es ginge auch per sql, ja)

    aus der adressklasse kannst du dir die adressen ziehen, getAdr() und dann sind dort in jeder Adresse die Gruppen hinterlegt.

    ohne jetzt explizit im code zu schauen, so muesste es gehen:
    (siehe auch Class_Adr.inc.php)

    <?php
    //adressen mit mehr als 1 gruppe anzeigen

    //tm config einbinden, fuer db zugriffe etc
    include("include/tm_config.inc.php");

    //neues address-objekt
    $ADR=new tm_ADR();

    //
    $A=Array();//array mit allen addressids
    $B=Array();//zielarray mit addressids mit mehr als 1 gruppe
    $bn=0;//zaehler f. adressen > 1 gruppe

    //Array A fuellen mit AddressIDs aus der DB
    //syntax:   function getAdrID($group_id=0,$search=Array())
    $A=$ADR->getAdrID();

    echo print_r($A,TRUE);
    echo "<hr>";

    //Array durchwandern und jede Adresse pruefen
    foreach ($A as $adr_id) {
    $G=Array();//temporaeres Array
    //Gruppen fuer Adresse holen
    //syntax: function getGroupID($id=0,$adr_id=0,$frm_id=0,$search=Array())
    $G=$ADR->getGroupID(0,$adr_id);
    //wenn mehr als 1 Gruppe!, dann speichere ID der Adresse in B und erhoehe den Counter bn
    if (count($G)>1) {
    $B=$adr_id;
    $bn++;
    }
    }

    echo print_r($B,TRUE);
    echo "<hr>";

    //ergebnis anzeigen, IDs von Adressen mit mehr als 1 Gruppe sind in $B abgelegt
    foreach ($B as $adr_id) {
    //Addressdetails auslesen
    //syntax: getAdr($id=0,$offset=0,$limit=0,$group_id=0,$search=Array(),$sortIndex="",$sortType=0,$Details=1)
    $A=$ADR->getAdr($adr_id);
    //Gruppen f.d. Addresse auslesen
    $G=$ADR->getGroup(0,$adr_id);

    echo print_r($A,TRUE);
    echo print_r($G,TRUE);
    echo "<hr>";
    }

    ?>

     
  • vizzy

    vizzy - 2009-12-03

    ouch, sorry, sf hat mir hie rgrade den beispielcode zerschossen…..

     
  • vizzy

    vizzy - 2009-12-03

    with code block, and without php tags…:

        //adressen mit mehr als 1 gruppe anzeigen

    //tm config einbinden, fuer db zugriffe etc
    include("include/tm_config.inc.php");

    //neues address-objekt
    $ADR=new tm_ADR();

    //
    $A=Array();//array mit allen addressids
    $B=Array();//zielarray mit addressids mit mehr als 1 gruppe
    $bn=0;//zaehler f. adressen > 1 gruppe

    //Array A fuellen mit AddressIDs aus der DB
    //syntax:   function getAdrID($group_id=0,$search=Array())
    $A=$ADR->getAdrID();

    echo print_r($A,TRUE);
    echo "<hr>";

    //Array durchwandern und jede Adresse pruefen
    foreach ($A as $adr_id) {
    $G=Array();//temporaeres Array
    //Gruppen fuer Adresse holen
    //syntax: function getGroupID($id=0,$adr_id=0,$frm_id=0,$search=Array())
    $G=$ADR->getGroupID(0,$adr_id);
    //wenn mehr als 1 Gruppe!, dann speichere ID der Adresse in B und erhoehe den Counter bn
    if (count($G)>1) {
    $B=$adr_id;
    $bn++;
    }
    }

    echo print_r($B,TRUE);
    echo "<hr>";

    //ergebnis anzeigen, IDs von Adressen mit mehr als 1 Gruppe sind in $B abgelegt
    foreach ($B as $adr_id) {
    //Addressdetails auslesen
    //syntax: getAdr($id=0,$offset=0,$limit=0,$group_id=0,$search=Array(),$sortIndex="",$sortType=0,$Details=1)
    $A=$ADR->getAdr($adr_id);
    //Gruppen f.d. Addresse auslesen
    $G=$ADR->getGroup(0,$adr_id);

    echo print_r($A,TRUE);
    echo print_r($G,TRUE);
    echo "<hr>";
    }

     

Log in to post a comment.

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

JavaScript is required for this form.





No, thanks