SQL birden fazla kelimeyi bağımsız aratmak [ÇÖZÜLDÜ]
Merhaba,
$ara = $_GET['ara'];
$parcala = explode("+",$ara);
$sorgu=$db->prepare("SELECT * from tbl_urun_stok WHERE Keywords LIKE :ara");
$sorgu->execute(array(':ara' => '%'.$ara.'%'));
Yukarıdaki sorguda arama alanın ayazdığım 2 veya daha fazla kelimeyi (hangi biri veya hangileri varsa) sonuc gösterecek şekilde nasıl düzenlerim.
Bulduğum bir kod örneğinde GET parametresindeki kelimeleri + ayıracı ile parçalayıp kelime sayısınca LIKE 'ın sonuna or (veya and) ile ekliyor. Ama kendi kodlarıma uyarlayamadım.
Saygılar.
Sözüne ettiğim örnek kodların ekran görünütüsü : https://prnt.sc/rw59w0
Kodlar sanki aslında istediğimi vermesi gerekiyor doğru gibi ama sonu aynen yazdığım gibi yani %kelime1 kelime2%
Aşağıya tüm kodlarımı koyuyorum belki gözümden kaçana başka engel bir durum vardır?
<?php
if (isset($_GET['ara'])) {
$ara = $_GET['ara'];
$parcala = explode("+",$ara);
$sor = "SELECT * from tbl_urun_stok WHERE SatisTipi = 1 and UrunDurum = 1 and ";
for ($i=0; $i < count($parcala)-1 ; $i++) {
$sor .="Keywords LIKE '%$parcala[$i]%' or ";
}
$sor .= "Keywords LIKE '%$parcala[$i]%'";
echo $sor;
$sorgu=$db->prepare($sor);
$sorgu->execute(array(':ara' => '%'.$ara.'%'));
} else {
$sorgu=$db->query("SELECT * from tbl_urun_stok WHERE SatisTipi = 1 and UrunDurum = 1");
$sorgu->execute();
}
?>
<?php
if($sorgu->rowCount()){ foreach ($sorgu as $row2) { ?>
Aranan kritere göre ıkan sonuçların listenmesi..
<?php } ?>
<?php } else { ?>
Aradıüınız kriterde ürün bulunamadı!..
<?php } ?>