str_replace ersetzt nicht, es ibt auch keine Fehlermeldung

Gray

Erfahrenes Mitglied
Ich hab keine ahnung, was ich falsch mache, aber er ersetzt nichts.

PHP:
<?php
$replace = array('ä' => 'ae',
				'ö' => 'oe',
				'ü' => 'ue',
				'ß' => 'ss');

$result = mysql_query("SELECT * FROM user");
while ($row = mysql_fetch_array($result)) {

	echo $row[vorname]." ".$row[name]." --> ";

	foreach($replace as $such => $ers) {
	
		$kvorname = str_replace($such, $ers, $row[vorname]);
		$kname = str_replace($such, $ers, $row[name]);
		$kstrasse = str_replace($such, $ers, $row[strasse]);
		$kort = str_replace($such, $ers, $row[ort]);
		$kplz = str_replace($such, $ers, $row[plz]);
		
	}
	
		mysql_query("UPDATE user SET vorname='$kvorname',name='$kname',strasse='$kstrasse',ort='$kort',plz='$kplz' WHERE user_id='$row[user_id]'");
		echo $kvorname." ".$kname." -> done<br>";

}

?>
 
PHP:
$replace = array('ä' => 'ae',
                'ö' => 'oe',
                'ü' => 'ue',
                'ß' => 'ss');

$result = mysql_query("SELECT * FROM user");
while ($row = mysql_fetch_array($result)) {

    echo $row["vorname"]." ".$row["name"]." --> ";


    
        $kvorname = str_replace(array_keys($replace), array_values($replace), $row["vorname"]);
        $kname = str_replace(array_keys($replace), array_values($replace), $row["name"]);
        $kstrasse = str_replace(array_keys($replace), array_values($replace), $row["strasse"]);
        $kort = str_replace(array_keys($replace), array_values($replace), $row["ort"]);
        $kplz = str_replace(array_keys($replace), array_values($replace), $row["plz"]);
        

    
        mysql_query("UPDATE user SET vorname='$kvorname',name='$kname',strasse='$kstrasse',ort='$kort',plz='$kplz' WHERE user_id='". $row["user_id"] ."'");
        echo $kvorname." ".$kname." -> done<br>";

}
 
Zuletzt bearbeitet:
thx, das hat geklappt, aber warum meine Version nicht geht, kapier ich nicht, hat bisher immer funktioniert.
 
Gewöhne dich an die korrekte Programmierung.
Z.b. $row[name] wird zu $row['name'] oder $row["name"]
Ansonsten sucht php zuerst nach Konstanten.
Und deine Ersetz-Syntax war wohl auch nicht richtig, da mit Arrayfunktionen zu arbeiten, wie diggity es gemacht hat, scheint sinnvoll und praktisch ;)

mfg
 
Zurück