v2.5.2
Giriş yap

MYSQL daha İNCE arama yapmak.

aydinkeskin
629 defa görüntülendi

Ö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
aydinkeskin
1490 gün önce

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.