php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2004-2

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 15.12.2004, 13:51  
Erfahrener Benutzer
 
Registriert seit: 19.11.2003
Beiträge: 172
BastianX75
Standard Texte auf ähnlichkeiten vergleichen

Hallo zusammen,

ich möchte mit einer mysql-Abfrage ein Ergebnis erhalten, welches mir nicht nur direkte Worttreffer erkennt, sondern auch solche, die sich nur ähneln. Auf diese weise möchte ich z.B. Tippfehler ausgrenzen.

Hintergrund ist folgender:
Ich habe in einer Datenbank Ortnamen gespeichert. User sollen jetzt die möglichkeit haben, weitere Orte hinzuzufügen. Um Doppeleinträge zu vermeiden sollen nun die vorhandenen Orte mit dem Neuen verglichen werden und bei einem Treffer eine "Sicherheitsabfrage" angezeigt werden.
Hier wäre es jetzt natürlich wünschenswert, wenn z.B. jemand den Ort Neustat (ohne dt) eingibt, er auch alle Orte aufgelistet begommt, die Neustadt (mit dt) heißen.

Hat hierzu jemand eine Idee
__________________
Schönen Gruß
Sebastian

Erfahrung ist eine nützliche Sache. Leider macht man sie immer erst kurz nachdem man sie braucht.
BastianX75 ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 15.12.2004, 13:57  
Gast
 
Beiträge: n/a
Standard

du könntest ja vergleichen ob die ersten buchstaben sich gleich sind. Sonst wüsste ich jetzt auch nichts, würd mich aber interessieren ob da was gibt. Wobei du bei meine Variante problemme bekommen könntest, wenn zum Beispiel einer statt Neustadt - Hohenacker nur Hohenacker schreibt.
 
Alt 15.12.2004, 14:09  
Erfahrener Benutzer
 
Registriert seit: 19.11.2003
Beiträge: 172
BastianX75
Standard

das wäre kein Problem, sondern sogar wünschenswert.
__________________
Schönen Gruß
Sebastian

Erfahrung ist eine nützliche Sache. Leider macht man sie immer erst kurz nachdem man sie braucht.
BastianX75 ist offline  
Alt 15.12.2004, 14:14  
Erfahrener Benutzer
 
Registriert seit: 19.11.2003
Beiträge: 172
BastianX75
Standard

Hm...
Das mit den ersten Buchstaben vergleichen dürfte recht unnütz sein, da ich ja auch Fehler wie z.B. Aalen und Ahlen abfangen möchte. Nur den ersten Buchstaben herranzuziehen ergibt mir eine viel zu große Trefferzahl.
Am besten wäre eine Funktion die mir sagt, Die Wörter ähneln sich z.B. zu 90%.
__________________
Schönen Gruß
Sebastian

Erfahrung ist eine nützliche Sache. Leider macht man sie immer erst kurz nachdem man sie braucht.
BastianX75 ist offline  
Alt 15.12.2004, 14:18  
Erfahrener Benutzer
 
Registriert seit: 18.09.2003
Beiträge: 13.598
PHP-Kenntnisse:
Fortgeschritten
imported_Ben ist zur Zeit noch ein unbeschriebenes Blatt
Standard

das gibt es nicht.
alternativ wäre eine möglichkeit, dass du zu jedem begriff einige alternativbegriffe angibst, die dann auch abgefragt werden.

anders könnte ich mir das auf dem direkten weg nicht vorstellen.
imported_Ben ist offline  
Alt 15.12.2004, 14:28  
Erfahrener Benutzer
 
Registriert seit: 19.11.2003
Beiträge: 172
BastianX75
Standard

Schade...
Das mit den Alternativbegriffen ist recht aufwendig, da die Tabelle mit den Orten mittlerweile weit über 500 Einträge hat, dazu sich jetzt alternativen übelegen und die alle mit den einzelnen Orten verknüpfen Ist wohl ein riesiger Aufwand.

Gibts den sowas in PHP? Also ne Abfrage machen mit allen Orten und diese in ner Schleife mit ner PHP-Funktion vergleichen?
__________________
Schönen Gruß
Sebastian

Erfahrung ist eine nützliche Sache. Leider macht man sie immer erst kurz nachdem man sie braucht.
BastianX75 ist offline  
Alt 15.12.2004, 19:48  
Erfahrener Benutzer
 
Registriert seit: 19.11.2003
Beiträge: 172
BastianX75
Standard


Hallo zusammen,
für Diejenigen, die es interessiert, ich hab eine ziehmlich gut funktioierende Lösung gefunden.
Code:
<form action="http://localhost/dummy.php" method="get">
<input type="text" name="suche">
<input type="submit">
</form>
<table>
<tr><th>ort_id</th><th>ort</th><tr>
<?php
include "../DbConnect.php";
$result = mysql_query("SELECT ort_id, ort FROM orte");
while ($row = mysql_fetch_row($result)) {
  $ergebnis = sucheAehnliche ($row[1], $_GET['suche']);
  if ($ergebnis) {
    echo "<tr><td>$row[0]</td><td>$row[1]</td></tr>";
  }
}

function sucheAehnliche ($sucheIn, $sucheNach) {
  $treffer = false;
  $arSI = explode(' ', $sucheIn);
  $arSN = explode(' ', $sucheNach);
  foreach ($arSI as $stringSI) {
    $seSI = soundex($stringSI);
    foreach ($arSN as $stringSN) {
      if ($seSI == soundex($stringSN)) {
        $treffer = true;
        break 2;
      }
    }
  }
  return $treffer;
}
?>
</table>
Ergibt zum beispiel nach der suche von Naustad (absichtlich falsch geschrieben :wink: ):
Zitat:
ort_id ort
170 Neustadt an der Weinstraße
171 Neustadt bei Coburg
211 Neustadt an der Aisch
424 Bad Neustadt an der Saale
680 Neustadt / Sachsen
908 Neustadt in Sachsen
__________________
Schönen Gruß
Sebastian

Erfahrung ist eine nützliche Sache. Leider macht man sie immer erst kurz nachdem man sie braucht.
BastianX75 ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Zwei Texte vergleichen und Unterschiede mit Farbe kennzeich. BartTheDevil89 PHP Tipps 2008 5 02.01.2008 19:18
Texte mit PHP vergleichen stefanjann PHP Tipps 2007 4 08.01.2007 14:27
ausgelesene Werte im Array vergleichen - Möglich!? vampsoftchef PHP Tipps 2006 2 22.08.2006 14:34
datum vergleichen LP PHP Tipps 2006 2 18.07.2006 15:12
Zwei Strings vergleichen Bunnydog PHP Tipps 2006 5 21.01.2006 14:10
wie kann man datums vergleichen mollitz PHP Tipps 2007 15 22.12.2005 09:42
[Erledigt] 2 Arrays miteinander vergleichen PHP Tipps 2007 3 17.12.2005 16:54
[Erledigt] Objekte vergleichen PHP-Fortgeschrittene 4 08.12.2005 16:20
Texte automatisch in gif oder jpg Banner umwandeln. Wie? Völlig unbedarft PHP Tipps 2007 1 03.11.2005 20:12
Texte in Digitalform - wo kriege ich das? Off-Topic Diskussionen 8 17.07.2005 16:32
variablen vergleichen PHP Tipps 2005 18 18.05.2005 19:24
[Erledigt] Bilder vergleichen? PHP-Fortgeschrittene 7 20.04.2005 15:52
Formulardaten mit MySQL Datenfeld vergleichen PHP Tipps 2005 4 15.03.2005 20:15
[Erledigt] Datum vergleichen! PHP Tipps 2004 1 20.09.2004 14:53
texte aus db lesen und verschicken per mail PHP Tipps 2004 1 17.09.2004 12:19

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
texte vergleichen, php vergleichen ähnlichkeit, ähnlichkeit von texten, http://www.php.de/php-tipps-2004-2/14224-texte-auf-aehnlichkeiten-vergleichen.html, text ähnlichkeit, texte vergleichen deutsch, php textähnlichkeit, texte vergleichen ähnlichkeit, ähnlichkeit texte, textähnlichkeit php, php texte vergleichen, texte ähnlichkeit, ähnlichkeiten vergleichen, php texte auf ähnlichkeit vergleichen, php text auf ähnlichkeit vergleichen, php ähnlichkeit vergleichen, texte auf ähnlichkeiten, text vergleichen, texte vergleichen php, ähnlichkeit text

Alle Zeitangaben in WEZ +2. Es ist jetzt 23:52 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.