Denk ich an Arrays in der Nacht.......
Wilhelm Turtschan
- php
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
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";
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
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
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