• 19-05-2018, 15:10:08
    #1
    Arkadaşlar Merhaba bir arama formundan veri geldiğinde aranan veriyi ve bulunduğu ili post ile tutuyorum daha sonra bu verilere göre listeleme yapmaya çalışıyorum fakat Örneğin "aranan kelime" "İstanbul" olarak aratma yaptım Ankara seçili olan ilide listeliyor kullanmış olduğum kod:

    <?php
    $aranan = $_POST["search"];
    $local = $_POST["local"];
    
    $arama_sor= mysqli_query($mysqlicon, "SELECT * from  kategoriler WHERE kategoriler='$aranan' ");
    $arama_row= mysqli_fetch_array($arama_sor);
    $arama_id = $arama_row[0];
    $query=mysqli_query($mysqlicon, "SELECT * FROM firmalar WHERE tanitim_yazisi LIKE '%$aranan%' AND il LIKE '%$local%' OR firma_adi LIKE '%$aranan%' OR hizmet LIKE '%$arama_id%' ORDER BY puan DESC ");
    $querym=mysqli_query($mysqlicon, "SELECT * FROM firmalar WHERE tanitim_yazisi LIKE '%$aranan%' AND il LIKE '%$local%' OR firma_adi LIKE '%$aranan%' OR hizmet LIKE '%$arama_id%' ORDER BY puan DESC ");
    $row = mysqli_num_rows($query);
    ?>
  • 19-05-2018, 17:56:14
    #2
    Sorgunuzun where kısmındaki AND ve OR ları parantezler içine alarak önceliklerine göre ayırmanız gerekiyor. AND ve OR'u aynı öncelik seviyesinde kullandığınızdan sondaki OR koşullarından herhangi biri sağlandığında diğer satırlardaki koşulların bir önemi kalmıyor.
  • 21-05-2018, 09:23:44
    #3
    $query=mysqli_query($mysqlicon, "SELECT * FROM firmalar WHERE tanitim_yazisi LIKE '%$aranan%' OR firma_adi LIKE '%$aranan%' OR hizmet LIKE '%$arama_id%'  AND il LIKE '%$local%'  ORDER BY puan DESC");
    parantez içine aldım bu şekilde güncelledim gene koşullara uymadan listeleme yapıyor. İçlerinden herhangi bir OR'u kaldırınca çalışıyor anlamadım birşey.



    $querym=mysqli_query($mysqlicon, "SELECT * FROM firmalar WHERE il LIKE '%$local%' AND (tanitim_yazisi LIKE '%$aranan%' OR firma_adi LIKE '%$aranan%' OR hizmet LIKE '%$arama_id%' ) ORDER BY puan DESC");
    Bu şekilde güncelledim çalıştı