Worte in Links umwandeln - Hilfe

Du hast blind mein Script kopiert ohne zu verstehen was es machen soll.
item: Beim versuch es anzupassen hast du nochmals ein ' vergessen.
item: Warum öffnest du dasselbe SQL 2 mal?
item: $string sollte etwas von dir sein und nicht mein unnützer Text
 
Eigentlich dein Ausgangsstring, siehe auch [phpf]preg_replace[/phpf].

Allerdings dachte ich, du willst automatisch einen String wie Hallo schöne Welt in Hallo-schone-Welt umwandeln, oder?
Dann ist der Ansatz von yaslaw nicht sehr passend.

Oder irre ich mich da?
 
genau, ich will automatisch einen String wie
Hallo schöne Welt in hallo-schone-welt umwandeln.

So ersetzen:
A-Z => a-z
ä,ö,ü,ß => ae, oe, ue, ss
` ` (Leerzeichen) => -
verbleibende Zeichen ausser a-z, 0-9, - entfernen (oder ebenfalls durch `-` ersetzen)

Was muss im Code stehen, damit das läuft?
 
Benutze doch meinen Code. Iteriere einfach durch alle Datensätze und wende die Funktion auf den Wert an.

Allerdings wandelt meine Funktion ä zu a um und die verbleibenden Zeichen werden auch noch nicht entfernt. Du kannst es ja erweitern, siehe vor allem das PHP-Handbuch.
 
PHP:
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);

 $db = @new mysqli('localhost', 'user', 'pass', 'usr_web124');
if (mysqli_connect_errno()) {
    die ('Konnte keine Verbindung zur Datenbank aufbauen: '.mysqli_connect_error().'('.mysqli_connect_errno().')');
}
$sql = 'SELECT name, links FROM stt';
$result = $db->query($sql);
if (!$result) {
    die ('Etwas stimmte mit dem Query nicht: '.$db->error);
}
	
	function convert($str)
{
  $replace = array('ä', 'Ä',
                   'ö', 'Ö',
                   'ü', 'Ü',
                   ' ');
  $replace_to = array('a', 'A',
                      'o', 'O',
                      'u', 'U',
                      '-');
  return str_replace($replace, $replace_to, $str);
} 

 ?>

Was fehlt noch, es passiert nichts?
 
item: Ich möchte dich bitten, in deinen nächsten Posts die Groß- und Kleinschreibung zu beachten. Danke!Ich weiss nicht, was passieren sollte. Du hast da eine Funktion convert() geschrieben und rufst sie nicht auf. Also, was soll den passieren?
Auch wenn du convert() aufrufen würdest, würde nix ersetzt, da
a) der Teststring kein Umlaut drin hat, der die Funktion convert() ersetzen würde
b) deine Übersetzung aus der DB zwar geladen, aber nirgens ausgewertet wird.

item: Das Script hat keine einzige Ausgabe und wenn nix ausgegeben wird, kannst du auch nix sehen.

Auf gut deutsch, das Script macht alles genau so wie es da steht. Es lädt die Tabelle stt und wenn das geschehen ist, ist das Script schon fertig durchgelaufen.

Bitte kopiere nicht einfach wild Zeugs zusammen ohne zu verstehen versuchen was das Ding macht.
 
Wieso machst du einen neuen Thread auf?

Was soll den bei dem Code denn auch passieren?
Du rufst die Funktion auch gar nicht auf.

So werden zumindest der Name und der geänderte Name zusammen in einem Array per [phpf]var_dump[/phpf] ausgegeben.

Als nächstest müsstest du dann alle Werte per MySQL-Befehl UPDATE aktualisieren. Oder möchtest du die Werte einfach nur ausgeben?

PHP:
<?php 

error_reporting(E_ALL); 
ini_set('display_errors', 1); 

/* Funktion convert() hier einfügen ! */

 $db = @new mysqli('localhost', 'user', 'pass', '...'); 
if (mysqli_connect_errno()) { 
    die ('Konnte keine Verbindung zur Datenbank aufbauen: '.mysqli_connect_error().'('.mysqli_connect_errno().')'); 
} 
$sql = 'SELECT name, links FROM stt'; 
$result = $db->query($sql); 
if (!$result) { 
    die ('Etwas stimmte mit dem Query nicht: '.$db->error); 
} 
else
{
  while ($row = mysql_fetch_row($result))
  {
     var_dump( array($row[0], convert($row[0]) );
  }
}
 
Zurück