2016-06-27 26 views
0

ich Problem mit mysql Suche bekommen Zum Beispiel in Stadtdatenbanktabelle Ich habe record „Riga“
Wie Sie in der Datenbank finden Sie unter Word „Riga“ haben „i“ nicht „i“ Brief .
Ist es möglich, auf der Suche zu machen, auch wenn ich mit regulären "i" schreiben?
Da diese Variante
Mysql + PHP Suchwort ohne utf8

SELECT * FROM `city` WHERE `title` LIKE '%Riga%' 

Antwort

2
+0

Ja, endlich habe ich, danke :) '$ q1 = mq ($ db2," SELECT * Von Stadt WHERE Titel wie _utf8 '% ka%' sortieren utf8_general_ci ");' Dies alles behoben :) –

+0

Entschuldigung für Doppel Post, aber ich bekomme ein anderes Problem. Wenn ich ka seine Arbeit schreibe, aber wenn ich mehr als 2 Buchstaben schreibe, zeigt es nichts, zum Beispiel "kar" es zeigt nichts, aber wenn "ka" es 2 Aufzeichnungen zeigt, warum ist das? –

+0

Ich muss sagen, es ist ziemlich seltsam. Ich habe keine endgültige Antwort auf dieses Verhalten: vielleicht, weil der Brief mit merkwürdigem Akzent nicht der letzte ist? Versuchen Sie etwas wie% ka% r% und sehen Sie was passiert. – Sylter

0

Sie sollten die gleiche Verbindung Codierung als Datenbank verwenden, bevor Ausführen von Abfragen arbeiten isnt.

Wenn Sie mit PDO, stellen nur die Verbindung Codierung als:

$encoding = "utf8"; //replace this value with the character encoding you're using 
$pdo = new PDO("mysql:host=host;dbname=my_db;charset=$encoding", $user, $pass); 

Wenn Sie mit MYSQLI verwenden mysqli_set_charset:

$encoding = "utf8"; //Use your encode here 
$con = mysqli_connect("host",$user,$pass,"my_db"); 
mysqli_set_charset($con, $encoding); 

Bearbeiten ~

Möglicherweise müssen Sie auch die Accent-insensitive Sortierung (UTF8_GENERAL_CI) in Ihrer Datenbank verwenden. Ich glaube, Ihr Problem bereits in der Post gelöst MySQL charsets and collations: accent insensitive doesn't work

+0

Nop seine nicht funktioniert. Vielleicht habe ich es nicht gut erklärt. Ich möchte ein System machen, was Google-Suche ähnlich ist. Zum Beispiel in der Datenbank haben 2 Datensätze Kārsava und Kandava Wenn ich Suche "SELECT * FROM' Stadt 'WHERE' title' LIKE '% ka%' "; Seine Rückkehr ist nur Kandava, aber ich will das, wenn er auch Kārsava zurückbringt. Ich habe versucht, Ihre Lösung, aber hat nicht funktioniert –

+0

Aktualisiert. Dank der Referenzen @Sylter Antwort, aber mit mysql :) – CarlosCarucce