Übereinstimmungen finden match()

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Übereinstimmungen finden match()

    Hallo!

    Ich habe folgendes Problem. Einige User können bei uns Bäckereien bewerten. Einige Verbraucher vergessen aber die Strasse oder die PLZ. Nun habe wir ein Tabelle mit allen Bäckerein in Hamburg gespeichert und möchten nun eine Prüfung vornehemen.

    Wenn Name, Strasse und PLZ korrekt sind, dann ist es eine 100% übereinstimmung. Wenn nur 2 Werte übereinstimmen, dann schlage mir diese vor.

    Habe folgende Funktionen gefunden levenshtein oder soundex, bin mir aber nicht sicher ob das die richtigen funktionen sind.

    Oder sollte ich klassisch mit like arbeiten und alles in mehreren abfragen aufbauen?

    Danke

  • #2
    Re: Übereinstimmungen finden match()

    Original geschrieben von der_meier_hans
    Wenn Name, Strasse und PLZ korrekt sind, dann ist es eine 100% übereinstimmung. Wenn nur 2 Werte übereinstimmen, dann schlage mir diese vor.
    Wieso vorschlagen, die stimmen doch schon. Du meinst sicher, dass anhand von zwei Werten der dritte, fehlende oder nicht übereinstimmende aus der DB gefischt und dem User zur Prüfung vorgelegt werden soll, richtig?

    Ansatz:
    Wenn $name fehlt:
    $sql = ... WHERE plz = $plz AND strasse SOUNDS LIKE '$strasse'
    sonst wenn $strasse fehlt:
    $sql = ... WHERE plz = $plz AND name SOUNDS LIKE '$name'
    sonst wenn $plz fehlt:
    $sql = ... WHERE name SOUNDS LIKE '$name' AND strasse SOUNDS LIKE '$strasse'

    Aber die Sache hat Haken. SOUNDS LIKE ist ein Synonym für SOUNDEX() und das funktioniert mit deutschen Strings manchmal nicht wie gewünscht. Deshalb würde ich es vorher mit einem exakten Vergleich (mit =) versuchen. Wenn das bereits einen Treffer liefert, ist der keinesfalls schlechter als alles was SOUNDEX liefern kann.
    Der exakte Vergleich kann als UNION zusammen mit der SOUNDEX als eine Query abgesetzt werden. Das kann u.U. schneller sein, muss aber nicht.

    Übrigens würdest du viele Vertipper vermeiden, wenn du das Formular mit Autocompletion versiehst. Dabei wird, wenn der User beginnt einen Namen zu tippen, alles was die bisher eingegebenen Zeichen als Präfix hat per Ajax aus der DB gezogen und angeboten. Wenn der User einen Vorschlag auswählt, kannst du gleich die Strasse und PLZ ausfüllen oder zumindest auf wenige Möglichkeiten beschränken (bei Backereiketten).

    Kommentar

    Lädt...
    X