v2.5.2
Giriş yap

SQL birden fazla kelimeyi bağımsız aratmak [ÇÖZÜLDÜ]

pcmemo
810 defa görüntülendi

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

pcmemo
1495 gün önce

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   } ?>