• 24-11-2017, 14:46:49
    #1
    Üyeliği durduruldu
    Merhaba Arkadaşlar..

    Her bir dizi elemanına göre veritabanında nasıl arama yapabilirim.
    Örneğin;

    $dizin ['0' , '1' , '2' ];

    Böyle bir dizinim var. Ben bu dizinin her bir elemanın sırasıyla veritabanında aranmasını sağlamak istiyorum. Bunu nasıl yapabilirim ?

    Her seferinde mysql_query sorgusu çalıştırmadan sadece bir defada var olan eleman sayısı kadar her bir elemanı veritabanında aramak istiyorum.
  • 24-11-2017, 19:34:12
    #2
    where in() ile yapabilirsin
    mesela dizin array(1,3,5) olsun bunları split fonksiyonu ile birleştir aralarında virgül olacak
    kısacası şöyle bir sql sorgusu mevcut
    select id,name from users where id in(1,3,5)
    ** dizi büyürse yavaşlama olabilir
  • 27-11-2017, 10:53:59
    #3
    Üyeliği durduruldu
    arkadaşlar foreach ile aşağıdaki mantıkta hallettim, paylaşıyorum.
    $sorgu = ""; foreach($dizi as $veri){ $sorgu.= "or id={$veri}"; }
  • 27-11-2017, 16:15:49
    #4
    vekka adlı üyeden alıntı: mesajı görüntüle
    arkadaşlar foreach ile aşağıdaki mantıkta hallettim, paylaşıyorum.
    $sorgu = ""; foreach($dizi as $veri){ $sorgu.= "or id={$veri}"; }
    Kayıtlar çoğalırsa sql sorgunuz çok uzayabilir. IN() kullanarakta yapabilirsiniz.

    $id_dizi = array(1,3,5); //idlermizin tutulduğu dizi
    $idler = implode(',', $id_dizi); //implode ile virgüllü şekilde dizideki elmanları birleştirip text haline getirdik "1,3,5" gibi
    
    mysqli_query("select id,isim from tablo where id in($idler)");
  • 28-11-2017, 10:58:32
    #5
    Üyeliği durduruldu
    tşkler hocam, dediğiniz gibi de oluyor.