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
- 23-12-2010, 16:28:07arkadaşlar burada önceligi başlıga göre vermeyi düşünüyorum.
örnegi abc okulu dendiginde abc,okulu kelimelerini bulup ilk kayıt yapanları çıkartıyor. en son kayıt olan abc okulu sonlarda cıkıyor. Yani asıl aranan veri sonda çıkıyor ne yapabilirm? - 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 ';
