Problem mit foreach()

DexterN

Mitglied
Hi..

ich hab folgendes Problem:

ich will die daten aus ner MySQL DB in nen document (.rtf) übergeben hab dazu nen code aus der zeitschrift PHP Solutions als grundlage genutzt..jetzt hab ich folgendes prob. wenn ich in der foreach() bedingung die daten convertieren will kommt nen error wenn ich allerdings die daten nur ausgeben lasse dann gehts

Error Code:
Warning: Invalid argument supplied for foreach() in print.php on line 51

als anhang habt ihr das script

cu DexterN
 
Lass dir mal diese Zeilen nochmal durch den Kopf gehen und überlege genau was du dort machst
und bedenke das ein $bla = $bla eine Variablen überschreibung bewirkt...!
PHP:
function convert($content) {
foreach($var as $symbol => $value)
         $content = str_replace("^^".strtoupper($symbol)."^^",$value,$content);
      return $content;
}
}

nur mal nen kleiner Tipp in deinem foreach oben
Du überschreibst $content jedesmal mit einem neuen Wert und den letzten wert gibste dann zurück

da du ja scheinbar schon nen gewissen wissen hast wirste da nun bestimmt draufkommen

Ausserdem bedeutet der Fehler den du bekommst das du der foreach Schleife kein Array übergibst
 
naja der sinn dieser foreach() schleide ist es ja jede variable in ^^blablabla^^ umzuwandeln was dann einem Platzhalter in der .rtf entsprechen würde der dann mit der entsprechenden value ersetzt wird..

im original lautet diese foreach() schleife:

PHP:
foreach($_POST as $symbol => $value)

da ich meine daten aber nicht aus einem vorgehndem Formular beziehe sondern aus einer MySQL DB dachte ich mir ich geb die in eine array ein da $_POST ja auch ein array ist..jetzt könnte es sein da sich das $_POST array anders zusammensetzt als meins..
 
Ganz einfach: Das _POST-Array ist Superglobal, var nicht.
Bedeuted: Entweder a) ein global $var; am Anfang deiner Funktion einfügen, oder b) viel schöner:
PHP:
function convert($content, $var) {
    [...]
}

[...]

$content = convert($content, $var);
 
Sicher?

Denn der Code hier geht (bei mir jedenfalls):
PHP:
function convert($content, $var)
{
	foreach($var as $symbol => $value) {
		$content = str_replace("^^".strtoupper($symbol)."^^",$value,$content);
    }

    return $content;
}

echo convert("hallo ^^LAND^^", $var);
 
Hallo Leute, ich ein ehnliches Problem.

Wenn ich aus einem Formular 2 Datensätze aus geben lasse, erhalte ich folgende Fehlermeldung:

Warning: Invalid argument supplied for foreach() in H:\putzplan\action.php on line 8.


Meine Dateien im Anhang:
 

Anhänge

@uhuwe:
So wie dein Formular aussieht, erstellst du zwar ein Select feld mit <select name=flur.......> und darin auch mehrere Options. Nur gibst du in keine der Options einen Wert. So eine Option würde so aussehen

--> <option value="Frau Bader">Frau Bader

Ansonsten kann deine action.php ja keine Werte auslesen, du übergibst ja auch keine ;)

EDIT: Ausserdem MUSS in einem SelectFeld mit mehreren Möglichkeiten der Variablenname mit zwei eckigen Klammern enden. In deinem Fall wäre dass dann "flur[]"
 
Zuletzt bearbeitet:
Zurück