array_merge_recursive aus zwei ODBC-Abfragen

knoebi

Grünschnabel
Hallo Zusammen,

ich hänge gerade an einem Problem. Ich möchte aus zwei SQL-Abfragen über ODBC ein Array bauen.

Hier mein bisheriger Code:

PHP:
$sql1 = "Select a,b,c from table where c=9197";
$exe1 = odbc_exec($odbcconnect, $sql1) or die(odbc_error());
$sql2 = "Select a,b,c from table where c=9198";
$exe2 = odbc_exec($odbcconnect, $sql2) or die(odbc_error());

while (odbc_fetch_into($exe1, $ar1)) { }

while (odbc_fetch_into($exe2, $ar2)) { }

$arraygesamt = array_merge_recursive ($ar1, $ar2);

Die Abfragen einzeln funktionieren prima. array_merge_recursive verbindet aber nur die letzten Zeilen aus beiden abfragen. Mit was kann ich in die while-Schleifen noch einfügen damit das array mit allen Ergebnissen der Abfrage gemerget wird?
 
So könnte es funktionieren:
PHP:
$sql1 = "Select a,b,c from table where c=9197";
$exe1 = odbc_exec($odbcconnect, $sql1) or die(odbc_error());
$sql2 = "Select a,b,c from table where c=9198";
$exe2 = odbc_exec($odbcconnect, $sql2) or die(odbc_error());

$arrData1 = array();
$arrData2 = array();

while (odbc_fetch_into($exe1, $ar1)) {
  $arrData1[] = $ar1;
}

while (odbc_fetch_into($exe2, $ar2)) {
  $arrData2[] = $ar2;
}

$arraygesamt = array_merge_recursive ($arrData1, $arrData2);
 
Hallo Tobee,

danke erstmal für die Antwort. Leider werden die Felder nicht richtig zusammengeführt.

Das kommt noch raus:

PHP:
Array
(
    [0] => Array
        (
            [0] => 2009-02-02
            [1] => 08:14:00
            [2] => 9197
        )

    [1] => Array
        (
            [0] => 2009-02-03
            [1] => 08:35:00
            [2] => 9197
        )

    [2] => Array
        (
            [0] => 2009-02-04
            [1] => 08:44:00
            [2] => 9197
        )

    [3] => Array
        (
            [0] => 2009-02-05
            [1] => 08:41:00
            [2] => 9197
        )

    [4] => Array
        (
            [0] => 2009-02-10
            [1] => 12:18:00
            [2] => 9197
        )

    [5] => Array
        (
            [0] => 2009-02-02
            [1] => 18:35:00
            [2] => 9198
        )

    [6] => Array
        (
            [0] => 2009-02-03
            [1] => 18:04:00
            [2] => 9198
        )

    [7] => Array
        (
            [0] => 2009-02-04
            [1] => 17:44:00
            [2] => 9198
        )

    [8] => Array
        (
            [0] => 2009-02-05
            [1] => 18:39:00
            [2] => 9198
        )

    [9] => Array
        (
            [0] => 2009-02-10
            [1] => 20:41:00
            [2] => 9198
        )

)

Ich hätte aber gern sowas:

PHP:
   [0] => Array
        (
            [0] => 2009-02-02
            [1] => 08:14:00
            [2] => 9197
            [3] => 2009-02-02
            [4] => 18:35:00
            [5] => 9198
        )
Basierend auf dem selben Datum. Vielleicht gibt es auch eine anderen Ansatz. Das Problem ist das die Zeitbuchungen für einen Tag in verschieden Zeilen stehen.
 
Hallo,

bis jetzt noch ohne Erfolg. Der einzigste Datensatz der gemerget wird ist der letzte der Abfrage bei folgendem Code:

PHP:
$arraygesamt = array_merge_recursive ($ar1, $ar2);

Beim Foreach ist mir die Reihenfolge nicht ganz klar.
 
Zurück