MYSQL daha İNCE arama yapmak.
Özellikle @tayfunerbilen sana sesleniyor :)
mysql de boolen mode diye birşey var bilmem bilirmisiniz :)))
şaka bi yana elbet bilirsiniz de.
ben bir türlü kullanmadım.
SELECT id, adi, aciklama,katid MATCH (adi,aciklama) AGAINST ('?' IN BOOLEAN MODE)
AS sonuc FROM urunler ORDER BY sonuc DESC;
urunler tablosunda arama yaptırıcam adi ve aciklama sutunlarına göre
fakat bir türlü istediğim sonucu alamıyorum bütün verileri olsun olmasın hangi tuşa basarsam veriyor.
if (isset($_POST['term'])) {
try {
$term = $_POST['term'];
$kod = "SELECT id, adi, aciklama,katid MATCH (adi,aciklama) AGAINST ('?' IN BOOLEAN MODE)
AS sonuc FROM urunler ORDER BY sonuc DESC;";
$Arama = pre($kod);
$val = "%$term%";
$Arama->bindParam(':term', $val , PDO::PARAM_STR);
$Arama->execute();
$Count = $Arama->rowCount();
$result ="" ;
if ($Count > 0){
while($data=$Arama->fetch(PDO::FETCH_ASSOC)) {
$kodd = "SELECT * FROM urunler_kat WHERE id=?";
$kate = pre($kodd);
$kate->execute([$data["katid"]]);
$ukat = $kate->fetch(2);
$result = $result .' <li class="list-group-item">
<a href="'.TEMA.'/urun-detay/'.$data['id'].'/'.seo($ukat['adi']).'/'.seo($data['adi']).'">'.$data['adi'].'</a>
</li> ';
}
echo $result ;
// echo $kod;
}
}
catch (PDOException $e) {
echo 'Bağlantı Hatası ' . $e->getMessage();
}
}
nerde hata yapıyorum acaba
muhtemelen öyledir veya değildir veya başka birşeydir :D
sql sorgumu su hale kadar getirdim biraz istediğim gibi oldu fakat.
bir kaç eksik seziyorum.
$sorgu ="SELECT *, MATCH(adi,aciklama) AGAINST (:aranan) AS sonuc
FROM urunler
WHERE MATCH(adi,aciklama) AGAINST(+:aranan IN BOOLEAN MODE)
ORDER BY sonuc DESC LIMIT 8;";
burda arana kelime sonuc = 1 olanları listeliyorum tam eşleşme sağlıyor
ve ararken örnek vereyim en güzeli
iphone aradığım zaman ajax ile bana anında yazılan ilk harfle eşleşen 8 kaydı getiriyor buraya kadar herşey güzel
bana göre eksik olan kısım ise bence en can alıcı yerlerinden biri
kelime eğer : iphone 5s ise
ben phone yazınca da o iphone un çıkmasını istiyorum,
bi onu beceremedim yada üstüne uğraşmaktan da aklıma gelmiyor olabilir şu sıralar çok oluyor:)
@tayfunerbilen
senin MYSQL bilgin oldukça fazla olduğunu düşünüyorum bi el atsan sana zahmet.