• 19-09-2019, 10:32:10
    #1
    Arkadaşlar Merhaba,

    GET ile tek string den aldığım "abc1,abc2,abc3,abc4" verisini pdo da WHERE SIPARISNO IN (' ') içerisinde kullanmaya çalışıyorum fakat ne yaptıysam sonuç alamadım.
    Elle string i kendim yazarsam sorguya sorun yok fakat değişkenden ilerleyemiyorum. Yabancı forumlardaki cevaplarla da ilerleyemedim. Atladığım birşey olabilir.

    Bİlginizi paylaşabilirseniz sevinirim

    $data = "abc1,abc2,abc3,abc4";
    Sorgu "..... where siparisno IN '({$data})' "
    Sorgumu aşağıdaki şekilde manuel kullandığımda sorunsuz çalışıyor.

    Sorgu "..... where siparisno IN ('abc1','abc2','abc3','abc4') "
  • 19-09-2019, 10:57:49
    #2
    $data = "abc1,abc2,abc3,abc4";
    $data değşkeni tek bir string olarak algılanır.O yüzden verileri parçalayıp o şekilde göndermeniz gerekli.Çeşitli yöntemleri var.İlk akla gelen explode ve implode

    $data = "abc1,abc2,abc3,abc4";
    $data = explode(',',$data); // Virgül ile ayır Array olarak çıktı verir.
    
    Sorgu "..... where siparisno IN ($data[0],$data[1],$data[2],$data[3]) "
  • 19-09-2019, 13:07:15
    #3
    Alkoz adlı üyeden alıntı: mesajı görüntüle
    $data = "abc1,abc2,abc3,abc4";
    $data değşkeni tek bir string olarak algılanır.O yüzden verileri parçalayıp o şekilde göndermeniz gerekli.Çeşitli yöntemleri var.İlk akla gelen explode ve implode

    $data = "abc1,abc2,abc3,abc4";
    $data = explode(',',$data); // Virgül ile ayır Array olarak çıktı verir.
    
    Sorgu "..... where siparisno IN ($data[0],$data[1],$data[2],$data[3]) "

    Array a çevirip implode ile kullandım lakin çözüm olmadı.
  • 19-09-2019, 13:22:19
    #4
    $data = explode(',',$data);
    $datain = trim(str_repeat('? ',  count($data)), ', ');
    Sorgu "..... where siparisno IN ('.$datain.')"
  • 19-09-2019, 13:26:20
    #5
    $array = explode (",",$_GET["yskno"]);
    $list = "'". implode("', '", $array) ."'";
    
    sql =" ... IN ({$list}) "
    bu şekilde çözdüm.
    Teşekkürler.