Tolwin: Array wird nicht richtig bestückt

Hallo Forum!

ich versuche aus einer DB Daten in ein Hash Array zu schreiben.
Leider werden nicht alle Daten mit der Indexbezeichnung assoziiert.
Hier der Code:

$result = mysql_query("SELECT * FROM Betreuer") or die ("FEHLER");
while ($row = mysql_fetch_arry($result))
{
    $betreuer_array[$row["BETREUER_ID"]] = $row["NAME"];
    $betreuer_array[$row["BETREUER_ID"]] = $row["BEREICH"];
    $betreuer_array[$row["BETREUER_ID"]] = $row["TELEFON_INTERN"];
    $betreuer_array[$row["BETREUER_ID"]] = $row["TELEFON_EXTERN"];
    $betreuer_array[$row[0]] = array('NAME' => $betreuer_array[0],
    'BEREICH' => $betreuer_array[1], 'TELEFON_INTERN' => $betreuer_array[2], 'TELEFON_EXTERN => $betreuer_array[3]);
}

var_dump($betreuer_array) liefert folgendes

Notice: Undefined offset: 0
Notice: Undefined offset: 0
Notice: Undefined offset: 1
Notice: Undefined offset: 2
Notice: Undefined offset: 3 array(2) { [4903910]=> string(13) "4823" [""]=> array(4) { ["NAME"]=> NULL ["BEREICH"]=> NULL ["TELEFON_INTERN"]=> NULL ["TELEFON_EXTERN"]=> NULL } }

Hat jemand einen Tipp für mich was ich falsch mache?
Vielen Dank!

  1. Hallo Tolwin,

    $result = mysql_query("SELECT * FROM Betreuer") or die ("FEHLER");
    while ($row = mysql_fetch_arry($result))

    ^^^^ hier fehlt ein "a"

    Ob alle Fehler damit beseitigt sind weiß ich nicht, aber probieren geht über studieren ,-)

    Grüsse
    Frankie

    1. Danke für den Tipp,

      kam aber nur durchs Abtippen da man aus Ultraedit nicht mit strg+c
      Kopieren kann

      1. hi,

        kam aber nur durchs Abtippen da man aus Ultraedit nicht mit strg+c
        Kopieren kann

        wie kommst du denn auf den unsinn?

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
        1. wie kommst du denn auf den unsinn?

          hmmm, also ich habe es mehrfach versucht....
          es geht einfach nicht!

  2. Lieber Tolwin,

    $betreuer_array[$row["BETREUER_ID"]] = $row["NAME"];
        $betreuer_array[$row["BETREUER_ID"]] = $row["BEREICH"];
        $betreuer_array[$row["BETREUER_ID"]] = $row["TELEFON_INTERN"];
        $betreuer_array[$row["BETREUER_ID"]] = $row["TELEFON_EXTERN"];

    Wenn ich das richtig lese, dann hast Du ein Array, das Du mit einem Index '$row["BETREUER_ID"]' fütterst, dem Du dann verschiedene Werte '$row[irgendwas]' zuweist. Überschreibst Du dann nicht jedesmal den Wert von $betreuer_array[$row["BETREUER_ID"]]?
    Könnte es sein, dass "4903910" aus dem var_dump eine Telefonnummer ist? Das würde erklären, dass die letzte Anweisung ($betreuer_array[$row["BETREUER_ID"]] = $row["TELEFON_EXTERN"];) eben zuletzt die Telefonnummer gespeichert hat.

    Soweit ich sehe, ist $row selbst ein Array. Bist Du Dir sicher, dass $row folgende Struktur hat?

    $row {
         ["BETREUER_ID"] => eine Zahl;
         ["NAME"] => ein String;
         ["BEREICH"] => ein String;
        ...
         }

    Wenn dem so wäre, dann ist $row ein assoziatives Array. OK. Soweit klar.
    Warum sollte es dann einen Index "0" in $row geben?

    $betreuer_array[$row[0]] = array('NAME' => $betreuer_array[0], ...

    Mach doch mal einen var_dump($row) in Deiner Schleife, um die Struktur von $row zu verstehen! Und dann überlege Dir gut, wie Dein Array $betreuer_array überhaupt strukturiert sein soll! Denn im Moment ist Dein $betreuer_array so aufgebaut:

    $betreuer_array {
       [eine Betreuer_ID] => ein einziger Wert,
       [eine Betreuer_ID] => ein einziger Wert,
       [eine Betreuer_ID] => ein einziger Wert,
       [eine Betreuer_ID] => ein einziger Wert
       }

    Liebe Grüße aus Ellwangen,

    Felix Riesterer.

    1. echo $begrüßung;

      ... dann ist $row ein assoziatives Array. OK. Soweit klar.
      Warum sollte es dann einen Index "0" in $row geben?

      Weil $row mit mysql_fetch_array() erzeugt wurde, und das liefert ein Array, bei dem die Werte mit numerischem und ein weiteres Mal mit assoziativem Index enthalten sind.

      echo "$verabschiedung $name";