Wilhelm Turtschan: Denk ich an Arrays in der Nacht.......

habe d'ehre ,

wuerde ich laut Heinrich um den Schlaf gebracht. Und er hat Recht!
Folgendes Problem hat mich heute Nacht meines Schoenheitsschlafes beraubt. Und den braucht man in meinem Alter dringend. :-)

Fuer eine Anwendung brauche ich drei Variablen:
$_imFld['location'] // Feldname aus MySQL-Struktur
$_imVal['location'] // Werte aus MySQL Datensatz
$_imTit['location'] // Textkonstante fuer Anzeige Bildschirm

Das Array $_imFld wird wie folgt gefuellt:

  
Beginn SQL....  
$meta = mysql_fetch_field($SQL_RESULT, $i);  
$imNames[$meta->name] = $meta->name;  
...Ende SQL  

Das Array $_imVal wird wie folgt gefuellt:

  
Beginn SQL...  
$imValues = mysql_fetch_row($SQL_RESULT);  
...Ende SQL  

es folgt

  
$i=0;  
foreach($imNames as $key) {  
 $_imVal[$key] = $imValues[$i];  
 $_imFld[$key] = $key;  
 $i++;  
}  
echo $_imFld['location']; //schreibt "loction"  
echo $_imVal['location']; //schreibt "München"  

bis hier alles wunderbar :-)

Jetzt das Problem! Aus einer Textdatei mit einer XML-Deklaration baue ich ein Array mit StringVariablen
...
zipcode#PLZ#
location#Ort#
...
es folgt

  
foreach($xml_values as $nr => $value) {  
 $test = explode("#", $value);  
 $key  = $test[0];  
 $wert = $test[1];  
 $_imTit[$key] = $wert;  
 endif;  
}  

Tja, wenn ich das Array mit

  
foreach($_imTit as $key => $wert) {  
 echo $key." --- ".$wert."<br>";  
}  

aufliste kommt schoen brav
...
location --- Ort
...

Allerding:

  
echo $_imTit['location'];  

schreibt nichts

Wo ist mein Denkfehler? Ach ja, die Arrays werden mit .. =array() vorher initialisiert.

Vielen Dank fuers Nachdenken.

man liest sich
Wilhelm

  1. echo $begrüßung;

    echo $_imTit['location'];
    schreibt nichts

    Vielleicht ein Variable-Scope-Problem? Hast du das error_reporting auf E_ALL stehen? Wenn nicht, kommt eine Fehlermeldung, wenn du es so einstellst? Was zeigt var_dump($_imTit); an?

    echo "$verabschiedung $name";

    1. habe d'ehre dedlfix

      Vielleicht ein Variable-Scope-Problem? Hast du das error_reporting auf E_ALL stehen? Wenn nicht, kommt eine Fehlermeldung, wenn du es so einstellst? Was zeigt var_dump($_imTit); an?

      array(24) { [" objectcode"]=>  string(14) "Objektnummer " [" objecttitle"]=>  string(7) "Titel " [" zipcode"]=>

      Da schau her, wo kommen denn die Leerzeichen her?

      bei $intVal schaut es naemlich so aus

      ["objectcode"]=>  string(11) "2006-06/234" ["objecttitle"]=>  string(55) "Stilvolle Büroeinheit mit 4 Zimmern in saniertem Altbau" ["zipcode"]=>  string(0) "" ["location"]=>  string(6) "Berlin" ["district"]=>  string(9) "Grunewald"

      man liest sich
      Wilhelm

      1. Moin!

        array(24) { [" objectcode"]=>  string(14) "Objektnummer " [" objecttitle"]=>  string(7) "Titel " [" zipcode"]=>

        Da schau her, wo kommen denn die Leerzeichen her?

        Sicher, dass es Leerzeichen sind? Ein Zeilenumbruch hätte den gleichen Effekt, da der von HTML als Whitespace betrachtet und ausgegeben wird.

        var_dump() daher immer in <pre> einfassen - oder in den HTML-Quelltext gucken.

        trim() dürfte helfen.

        - Sven Rautenberg

        --
        My sssignature, my preciousssss!
        1. habe d'ehre Sven

          Jo, da steckt ein Absatz drinnen. Wo der herkommt weiss der Geier.
          Danke, jetzt finde ich den Fehler schon. Jedenfalls weiss ich jetzt, warum Du noch Teilhaber einer Firma bist und ich nicht mehr. :-)

          man liest sich
          Wilhelm