Mehrere DB-Results zusammenenführen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Mehrere DB-Results zusammenenführen

    Hallo Zusammen,

    ich suche nache einer Möglichkeit um zwei oder mehrere SQL-Results in ein Array zusammenzufassen und dabei doppelte Werte zu löschen.

    Beispiel: (macht wenig Sinn aber einfach verständlich)
    Code:
    <?
    $sql_result_1 =  mysql_query("SELECT product_id FROM tabelle_a WHERE option_id = 1", $link);
    $sql_result_2 =  mysql_query("SELECT product_id FROM tabelle_a WHERE option_id = 2", $link);
    
    while ($arr_sql_1 =mysql_fetch_array($sql_result_1) ) {
     [...]
    }
    ?>
    Jetzt möchte ich die beiden Abfragen zusammenfügen, sprich zu einem Result bzw. als Array um es in einer Schleife auszulesen. Gesucht wird nach "product_id", wobei in beiden Abfragen die selben Werte vorhanden sein können und somit doppelt vorhanden wären, somit müssen die doppelten Werte gelöscht werden. Bekomme ich das irgendwie elegant mit Hilfe von Array-Funktionen hin ohne zuerst beide Results in einer Schleife auszulesen und "manuell" abzugleichen?

    Hat jemand eine Idee? Vielen Dank für Eure Unterstützung!
    Grüße, Dieter.

  • #2
    machs doch gleich per sql.
    Die Zeit hat ihre Kinder längst gefressen

    Kommentar


    • #3
      Beim obrigen Beispiel liegt das natürlich auf der Hand, aber die Abfragen werden von verschiedenen Datenbank-Servern abgefragt, die DBs sind 100%tig identisch aufgebaut. Die beiden DBs kann ich leider nicht zusammenlegen.

      Kommentar


      • #4
        Re: Mehrere DB-Results zusammenenführen

        Wenn die DBs auf zwei getrennten Servern liegen, führt an Schleifen nichts vorbei, denn du kannst die Ergebnismengen nur mit PHP vereinen.

        PHP-Code:
        <?php
        $joined 
        = array();

        $res =  mysql_query("SELECT product_id ..."$link1);
        while (
        $row mysql_fetch_assoc($res))
            
        joined[$row['product_id']] = ...;

        $res =  mysql_query("SELECT product_id ..."$link2);
        while (
        $row mysql_fetch_assoc($res))
            
        joined[$row['product_id']] = ...;

        ?>
        Die zweite Schleife überschreibt Datensätze aus der 1. DB, wenn sie die selbe ID haben.

        Kommentar

        Lädt...
        X