bu tür karakter sorunları için ben arama verilerini tek sütuna indirgeyip tek fonk. dan geçiriyorum, hem db verisinde hemde aranan kelimede böylece büyük harf sıkıntısı çıkmıyor.
misal
İzzet veya Izzet kelimesi veritabanına izzet olarak ekleniyor,
kullanıcı İzzet veya ızzet aradığında aynı fonk.dan geçirdiğim için izzet olarak aranıyor.
Full text arama - Baya ayrıntılı soru?
22
●1.647
- 29-12-2010, 15:23:18Hala aşagıdaki kodda başlıkta çıkanlara öncelik tanıyı yapamadım.
$ezr->query_mysql("SELECT id,name,phone,fax,address,tag FROM news WHERE name like '". $db->escape($name)."' or name like '%". $db->escape($name)."' or name like '". $db->escape($name)."%' or name like '%". $db->escape($name)."%' or tag like '%". $db->escape($name)."%' or description like '%". $db->escape($name)."%'"); - 29-12-2010, 22:47:18Dediğinizden anladığım kadarı ile böyle birşey istiyorsunuz

$query = 'abc haberi'; $query = addslashes($query); $sql = ' select *, match(title) against("'.$query.'") as ft_result_1, match(body) against("'.$query.'") as ft_result_2 from table where ( match(title) against("'.$query.'") || match(body) against("'.$query.'") ) order by ft_result_1, ft_result_2 desc ';Not: title ve body alanları ayrı ayrı full text search olarak belirtilmesi gerekir.
Not2: MySQL sunucunuzda "ft_min_word_len" default olarak 4 dür. Bu şu anlama gelir; en az 4 karakter içeren bir arama gerçekleştirebilirsin. 3 karakter gerekiyorsa bu değerin ayarlanması gerekir.
Not3: Çalışmaz ise aşağıdaki kodu deneyebilirsiniz.
$query = 'abc haberi'; $query = addslashes($query); $sql = ' select *, match(title) against("'.$query.'" IN BOOLEAN MODE) as ft_result_1, match(body) against("'.$query.'" IN BOOLEAN MODE) as ft_result_2 from table where ( match(title) against("'.$query.'" IN BOOLEAN MODE) || match(body) against("'.$query.'" IN BOOLEAN MODE) ) order by ft_result_1, ft_result_2 desc ';
