$sqll = "SELECT deutsch FROM words";
$resultt = mysql_query ($sqll);
while($row = mysql_fetch_array($resultt)){
// eingegebenes falsch geschriebenes Wort
$input = $search;
// Wörterarray als Vergleichsquelle
$words = array($row["deutsch"]);
// noch keine kürzeste Distanz gefunden
$shortest = -1;
// durch die Wortliste gehen, um das ähnlichste Wort zu finden
foreach ($words as $word) {
// berechne die distanz zwischen Inputwort und aktuellem Wort
$lev = levenshtein($input, $word);
// auf einen exakten Treffer prüfen
if ($lev == 0) {
// das nächste Wort ist das Wort selbst (exakter Treffer)
$closest = $word;
$shortest = 0;
// Schleife beenden, da wir einen exakten Treffer gefunden haben
break;
}
// Wenn die Distanz kleiner ist als die nächste gefundene kleinste Distanz
// ODER wenn ein nächstkleineres Wort noch nicht gefunden wurde
if ($lev <= $shortest || $shortest < 0) {
// setze den nächstliegenden Treffer und die kürzestes Distanz
$closest = $word;
$shortest = $lev;
}
}}
echo "Eingegebenes Wort: $input\n";
if ($shortest == 0) {
echo "Exakter Treffer gefunden: $closest\n";
} else {
echo "Meinten Sie: $closest?\n";
}
$words = array();
while($row = mysql_fetch_array($resultt)) {
array_push($words,$row["deutsch"]);
}
mysql_free_result($resultt);
$shortest = -1;
// durch die Wortliste gehen, um das ähnlichste Wort zu finden
foreach ($words as $word) {
...$words = array($row["deutsch"]); erzeugst du immer ein Array mit nur einem Element, nämlich dem zuletzt aus der DB gelesenen Wort. Mit array_push() wird stattdessen immer das aktuelle Wort an das Array angehängt.$sqll = "SELECT deutsch FROM words";
$resultt = mysql_query ($sqll);
$words = array();
while($row = mysql_fetch_array($resultt)) {
array_push($words,$row["deutsch"]);
}
mysql_free_result($resultt);
$shortest = -1;
// durch die Wortliste gehen, um das ähnlichste Wort zu finden
foreach ($words as $word) {
// berechne die distanz zwischen Inputwort und aktuellem Wort
$lev = levenshtein($input, $word);
// auf einen exakten Treffer prüfen
if ($lev == 0) {
// das nächste Wort ist das Wort selbst (exakter Treffer)
$closest = $word;
$shortest = 0;
// Schleife beenden, da wir einen exakten Treffer gefunden haben
break;
}
// Wenn die Distanz kleiner ist als die nächste gefundene kleinste Distanz
// ODER wenn ein nächstkleineres Wort noch nicht gefunden wurde
if ($lev <= $shortest || $shortest < 0) {
// setze den nächstliegenden Treffer und die kürzestes Distanz
$closest = $word;
$shortest = $lev;
}
}
if ($shortest != 0) {
echo "<br><br>Meinten Sie: <a href=\"http://www.tierbild.net/lexikon/index.php?search=$closest&button=%3E%3E+Suche\">$closest</a>?";}
}$input = $_GET['search']; schreiben.
Word Wörterbuch ändern
Rosmarin 02.02.2007 - 245 Hits -
suchen und ersetzen bestimmtes wort
ponscho 07.08.2007 - 53 Hits - 2 Antworten
Zelleneinträge vergleichen
Uwe2 02.10.2007 - 90 Hits - 5 Antworten
zuordnungen
wundi123 30.04.2008 - 64 Hits - 6 Antworten