2010-11-21 7 views
0
$value = 'http://www.mydomain.com/this-is-page-one' 

ich ein Feld in meiner MySQL-Tabelle haben "Urls" genannt, die innerhalb der unterschiedlichen URLs speichert, wie:Spiel urls mysql

http://www.bdsada.com/dsadsfsaf 
http://www.comddsad.com/dsadacsdfs 

und so weiter

Ich möchte am besten meinen Wert entsprechen mit einer der URLs. - Machen Sie eine SQL-Abfrage Vielleicht die Anzahl der Buchstaben zu wiederholen.

Bitte ein aktuelles Beispiel geben .... pleaseee

+1

http://dev.mysql.com/doc/refman/5.1/en/string-comparison-functions.html#operator_like –

+1

Wenn Sie "beste Übereinstimmung" sagen, meinen Sie, wie * www.bdsada. com * mit einer Eingabe von * bdsad *, oder meinst du die beste Übereinstimmung basierend auf der Levenshtein-Distanz? Können Sie ein Beispiel für die Eingabe im Vergleich zur erwarteten Ausgabe geben? – netcoder

+0

Basierend auf Levenshtein Entfernung – webmasters

Antwort

1

genau nicht sicher, was Sie durch die ‚beste Übereinstimmung‘ bedeuten. Angenommen, Sie speichern die URLs wie oben aufgeführt in der Datenbank (http://www.website.com/extension). Außerdem kann die Eingabe die URL "http: //", "www." Oder weitere GET-Variablen in der URL enthalten. Bevor Sie die Zeichenfolge für die Datenbankabfrage übergeben, würde ich Folgendes tun:

Um die "http: //" oder "https: //" von der URL zu entfernen.

$valueStrip = explode("//",$value); 
$value = $valueStrip[1]; 

Um Streifen aus jeder Variablen erhalten

$valueStrip = explode("?",$value); 
$value = $valueStrip[0]; 

Auch Sie es sicher, sauber für jede Injektion Angriff SQL, sollte diese übernehmen

$value = mysql_real_escape_string($value); 

Lassen

arbeiten, dass 'url' ist Der Name der Tabelle und 'Domänenname' ist der Spaltenname für den tatsächlichen Domänennamen. Also, Ihre Abfrage wie folgt aussehen könnte

$query = mysql_fetch_array(mysql_query("SELECT url FROM domainName WHERE url LIKE '%$value%'")); 

Ich sollte anmerken, dass ich nicht den Code getestet haben und es könnte effizienter gestaltet werden.