Kodları lütfen aşağıdaki butonları kullanarak renklendirin. Örnek: <php> echo "Selam Dünya"; </php>
Yardım
karakter kaldı

Php Mysql'de şartlı Arama

merhaba,
veri adlı tablomda başlık ve yazar adlı sütunlarım var. arama sayfasında sadece başlık girilmişse sadece başlık, sadece yazar adı girilmişse sadece o yazara ait başlıklar, ikiside girilmişse o yazara ait ilgili başlığı getirtmek istiyorum. bu MYSQL sorgusunu tek sorgu olarak nasıl yapabilirim. teşekkür ederim şimdiden.
+0
-0
Cevaba KatılıyorumKatılmıyorum
Cevap Yaz Yorum Yaz Arşivime Ekle Takip Et

Cevaplar

  • 2
    siyahbeyaz adlı üyenin fotoğrafı
    10 yıl önce yazılmış
    472 cevap - 20 soru
    select * from baslik B 
    inner join 
    yazar Y ON where B.veri LIKE '%aranankelime%' or  Y.veri LIKE '%aranan%'
    
    • bensedat18 adlı üyenin fotoğrafı bensedat18
      hocam ben pek anlamadım kusura bakmayın. istediğim şu. tablom şu şekilde:
      tablo adı "veri"

      id baslik icerik yazar
      1 A aaa sedat
      2 B bbb sedat
      3 C ccc emre

      şimdi bu verilerde arama yapmak istiyorum. başlık yazılmışsa ilgili başlığı yazar yazılmışsa ilgili yazara ait başlıkları, ikiside yazılmışsa iki şartıda sağlamasını istiyorum.
      10 yıl önce yazılmış
    • siyahbeyaz adlı üyenin fotoğrafı siyahbeyaz
      özür dilerim. sorunuzu yanlıs anlamısım...

      
      select * from veri where baslik like '%aranankelime%' or yazar like '%aranankelime%'
      
      10 yıl önce yazılmış
    • bensedat18 adlı üyenin fotoğrafı bensedat18
      bu şekilde yapabiliyorum hocam. yazarda like kullanmak istemiyorum. yazılan yazar adı yoksa veri çıkmasın istiyorum. yani yazar adı tam yazılmalı.
      10 yıl önce yazılmış
  • MFA adlı üyenin fotoğrafı
    10 yıl önce yazılmış
    22 cevap - 0 soru
    select * from veri where (baslik like '%aranankelime%' or yazar like 'aranankelime') and yazar like 'aranankelime'

    Yazdığın zaman istediğin gibi olmuş olur.
    • bensedat18 adlı üyenin fotoğrafı bensedat18
      hocam bu şekilde yazdığım zaman başlık girip yazar ismi girmeyince arama boş dönüyor.
      benim istediğim sadece başlık girilmişse sadece başlıkta arama yapmak, sadece yazar girilmişse o yazara ait başlıklarda arama yapmak, başlık ve yazar girilmişse girilen yazara ait girilen başlıklarda arama yapmak.

      select * from veri where baslik like '%aranankelime%' or yazar like 'aranankelime'

      bu şekilde yaptığım zaman yazar ismi girmeyip sadece başlık girildiğinde arama sıfır sonuç veriyor.
      10 yıl önce yazılmış
    • siyahbeyaz adlı üyenin fotoğrafı siyahbeyaz
      biz senin sorunu pek anlayamadık.

      tam olarak ne yapmak istedigini anlatırmısın...

      yazar ve baslik sütünların var... buraya kadar tamam...

      simdi aramayı neye gore yapacaksın. yazara gore mı basliga gore mi .. iki tana arama kutusumu var.

      arama türün nasıl ? su form arama kodlarını yazarmısın bi?
      10 yıl önce yazılmış
    • bensedat18 adlı üyenin fotoğrafı bensedat18
      iki arama kutusu var evet. birisine başlık diğerine yazar ismi girilebiliyor. bu kısmı atlamışım galiba özür dilerim.
      10 yıl önce yazılmış
    • siyahbeyaz adlı üyenin fotoğrafı siyahbeyaz
      input kutularını
      <input type="text" name="baslik">
      <input type="text" name="yazar">
      olarak varsayıyorum
      <?
      $baslik = $_POST[baslik] // veya get ise
      $yazar = $_POST[yazar];
      
      if(!empty($baslik) && !empty($yazar)) {
      $sql = "select * from tablon where baslik LIKE '%$baslik%' and yazar LIKE '%$yazar%' ";
      }
      elseif(!empty($baslik) && empty($yazar) ) // baslik girilmis yazar girilmemiş işse
      {
      $sql = "select * from tablon where baslik LIKE '%$baslik%' ";
      }
      elseif(empty($baslik) && !empty($yazar) ) // baslik girilmemis yazar girilmiş ise
      {
      $sql = "select * from tablon where yazar LIKE '%$yazar%' ";
      }
      
      
      $sorgu = mysql_query($sql);
      while($yaz=mysql_fetch_object($sorgu))
      {
      echo $yaz->baslik ." - ".$yaz->yazar ."<br />";
      }
      ?>
      
      10 yıl önce yazılmış