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
ben bu şekilde sorunsuz kullanıyorum
sadece dediğim gibi eksik olan bir işlem var
örnek veri : ali eve giderken öldü :)
arama alanına derken yazdığımda "ali eve giderken öldü" çıkması gerekiyor ama çıkmıyor
sadece ali veya eve veya giderken veya öldü yazarsam çıkıyor..
kodlar aşağıdaki gibidir.
sende bu kodlar ile yapıyorsan score > 0 dan yaparsan net sonuç alırsın
sonuçlar sorgulanırken varsa 1 yoksa 0 olarak sonuçlanıyor score olarak listelediğin için ne varsa listeleneiyor.
@tayfunerbilen kardeşimiz eksiğimizi tamamlamıza yardımcı olursa ne mutlu bize :)
if (isset($_POST['term'])) {
try {
$term = $_POST['term'];
$sorgu ="SELECT *, MATCH(adi,aciklama) AGAINST (:aranan) AS score
FROM urunler
WHERE MATCH(adi,aciklama) AGAINST(+:aranan IN BOOLEAN MODE)
ORDER BY score > 0 DESC limit 8;";
$aranan = '*'.$term.'*';
$ara = $db->prepare($sorgu);
$ara->bindValue(':aranan', $aranan, PDO::PARAM_STR);
$ara->execute();
$Count = $ara->rowCount();
$result ="" ;
if ($Count > 0){
while($data=$ara->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']).'">
<div class="d-flex search-product align-items-center">
<img style="width:50px; height:50px;" src="'.TEMA.'/uploads/urunler/'.$data['resim'].'">
<div class="w-100 overflow--hidden">
<div style="margin-left:5px;font-weight:bold;">'.$data["adi"].' </div>
<div class="clearfix">
<div class="price-box float-left">
'.indirimfiyat($data["indirim"],$data["fiyat"]).'
</div>
<div class="stock-box float-right">
<span class="badge badge-pill '.stokrenk($data["stok"]).'">'.stoklar($data["stok"]).'</span>
</div>
</div>
</div>
</div>
</a>
</li>
';
}
echo $result ;
echo '
<li class="list-group-item ">
<a style="font:15px; font-weight:bold;" href="">Tüm Ürünler >> </a>
</li>
';
}
}
catch (PDOException $e) {
echo 'Bağlantı Hatası ' . $e->getMessage();
}
}