• 21-10-2017, 12:24:23
    #1
    Benzer bir konu açılmış mı bulamadım. aşağıdaki görselde görüldüğü üzere formdan çoklu seçim yaptırıyorum fakat bunu veritabanına yazdırırken sadece birini alıyor. Örneğin sadece 3+2 gibi.

    Kullandığım kodlar şu şekilde;
      <div class="col-sm-4">
                                    <div class="form-group">
                                        <label for="property-id">Konut Tipleri</label>
                                        <select multiple="" class="selectpicker" id="property-status" data-live-search="false" title="Seçiniz" name="proje_konuttip">
                                            <option>Stüdyo (1+0)</option>
                                            <option>1+1</option>
                                            <option>2+1</option>
                                            <option>2+2</option>
                                            <option>3+1</option>
                                            <option>3+2</option>
                                            <option>4+1</option>
                                            <option>4+2</option>
                                            <option>4+3</option>
                                            <option>4+4</option>
                                            <option>5+1</option>
                                            <option>5+2</option>
                                            <option>5+3</option>
                                            <option>5+4</option>
                                            <option>6+1</option>
                                            <option>6+2</option>
                                            <option>6+3</option>
                                            <option>7+1</option>
                                            <option>7+2</option>
                                            <option>7+3</option>
                                            <option>8+1</option>
                                            <option>8+2</option>
                                            <option>8+3</option>
                                            <option>8+4</option>
                                            <option>9+1</option>
                                            <option>9+2</option>
                                            <option>9+3</option>
                                            <option>9+4</option>
                                            <option>9+5</option>
                                            <option>9+6</option>
                                            <option>10+1</option>
                                            <option>10+2</option>
                                            <option>10 Üzeri</option>
                                        </select>
                                    </div>
                                </div>
    formu islem.php ye gönderiyorum ve islem.php de kodlarım bu şekilde;
     if (isset($_POST['uyeprojekaydet'])) {
            $uploads_dir = '../../images/proje-detay';
            @$tmp_name = $_FILES['proje_resim']["tmp_name"];
            @$name = $_FILES['proje_resim']["name"];
            $benzersizsayi1=rand(1,320000);
            $benzersizad=$benzersizsayi1;
            $refimgyol=substr($uploads_dir, 6)."/".$benzersizad."-".$name;
            @move_uploaded_file($tmp_name, "$uploads_dir/$benzersizad-$name");
    
            $projeekle=$db->prepare("INSERT INTO projeler SET
              proje_baslik=:baslik,
              uye_id=:id,
              uye_unvan=:unvan,
              proje_detay=:detay,
              proje_tip=:tip,
              proje_fiyataz=:fiyataz,
              proje_fiyatcok=:fiyatcok,
              proje_adres=:adres,
              proje_ilce=:ilce,
              proje_il=:il,
              proje_enlemboylam=:enlemboylam,
              proje_konut=:konut,
              proje_ticari=:ticari,
              proje_konuttip=:konuttip,
              proje_arsaalan=:arsaalan,
              proje_konutalan=:konutalan,
              proje_isyerialan=:isyerialan,
              proje_otopark=:otopark,
              proje_teslim=:teslim,
              proje_kiraget=:kiraget,
              proje_video=:video,
              proje_etiket=:etiket,
              proje_danisman=:danisman,
              proje_resim=:resim
              ");   
            $projekayit=$projeekle->execute(array(
              'baslik' => $_POST['proje_baslik'],
              'id' => $_POST['uye_id'],
              'unvan' => $_POST['uye_unvan'],
              'detay' => $_POST['proje_detay'],
              'tip' => $_POST['proje_tip'],
              'fiyataz' => $_POST['proje_fiyataz'],
              'fiyatcok' => $_POST['proje_fiyatcok'],
              'adres' => $_POST['proje_adres'],
              'ilce' => $_POST['proje_ilce'],
              'il' => $_POST['proje_il'],
              'enlemboylam' => $_POST['proje_enlemboylam'],
              'konut' => $_POST['proje_konut'],
              'ticari' => $_POST['proje_ticari'],
              'konuttip' => $_POST['proje_konuttip'],
              'arsaalan' => $_POST['proje_arsaalan'],
              'konutalan' => $_POST['proje_konutalan'],
              'isyerialan' => $_POST['proje_isyerialan'],
              'otopark' => $_POST['proje_otopark'],
              'teslim' => $_POST['proje_teslim'],
              'kiraget' => $_POST['proje_kiraget'],
              'video' => $_POST['proje_video'],
              'etiket' => $_POST['proje_etiket'],
              'danisman' => $_POST['proje_danisman'],
              'resim' => $refimgyol
            ));
    
            if ($projekayit) {
              header("Location:../../projelerim.php?proje=ok");
            }
            else {
              header("Location:../../projelerim?proje=no");
            } 
          }
    Çoklu seçimi veritabanına kaydettirebilmem için nasıl bir değişiklik yapmam gerekiyor?
  • 21-10-2017, 12:30:40
    #2
    Select kodunun name değerinin sonuna [] ekle ; name="proje_konuttip[]" şeklinde. Php tarafında dizi şeklinde geleceği için bu alan $_POST[proje_konuttip] değişkenini döngüye sokarak çoklu seçimi tek tek ele alabilirsin.
  • 21-10-2017, 12:37:35
    #3
    LinkHouse adlı üyeden alıntı: mesajı görüntüle
    Select kodunun name değerinin sonuna [] ekle ; name="proje_konuttip[]" şeklinde. Php tarafında dizi şeklinde geleceği için bu alan $_POST[proje_konuttip] değişkenini döngüye sokarak çoklu seçimi tek tek ele alabilirsin.
    Üstad name değerini dediğin gibi değiştirdim. Php tarafında ne yapmam gerekiyor anlayamadım. Şuan bu şekilde kayıt yaptığımda "array" yazıyor veritabanında.
  • 21-10-2017, 12:54:18
    #4
    Php tarafında değişkeni döngüye alıp dizideki elemanları tek tek almalısın. Örnek olarak ;

    $konut_tipleri = "";
    foreach ($_POST[proje_konuttip] as $proje){
    $konut_tipleri.=$proje.",";
    }
    $konut_tipleri değişkeninin değeri şu şekilde olacaktır ;
    // 3+1,2+1 gibi
  • 21-10-2017, 13:10:11
    #5
    LinkHouse adlı üyeden alıntı: mesajı görüntüle
    Php tarafında değişkeni döngüye alıp dizideki elemanları tek tek almalısın. Örnek olarak ;

    $konut_tipleri = ""; foreach ($_POST[proje_konuttip] as $proje){ $konut_tipleri.=$proje.","; } $konut_tipleri değişkeninin değeri şu şekilde olacaktır ; // 3+1,2+1 gibi
    örnek kodunu şu şekilde uyguladım ama olmadı hocam
    if (isset($_POST['uyeprojekaydet'])) {
            $uploads_dir = '../../images/proje-detay';
            @$tmp_name = $_FILES['proje_resim']["tmp_name"];
            @$name = $_FILES['proje_resim']["name"];
            $benzersizsayi1=rand(1,320000);
            $benzersizad=$benzersizsayi1;
            $refimgyol=substr($uploads_dir, 6)."/".$benzersizad."-".$name;
            @move_uploaded_file($tmp_name, "$uploads_dir/$benzersizad-$name");
            $konut_tipleri = "";
            foreach ($_POST['proje_konuttip'] as $proje){
            $konut_tipleri.=$proje.",";
            }
    
            $projeekle=$db->prepare("INSERT INTO projeler SET
              proje_baslik=:baslik,
              uye_id=:id,
              uye_unvan=:unvan,
              proje_detay=:detay,
              proje_tip=:tip,
              proje_fiyataz=:fiyataz,
              proje_fiyatcok=:fiyatcok,
              proje_adres=:adres,
              proje_ilce=:ilce,
              proje_il=:il,
              proje_enlemboylam=:enlemboylam,
              proje_konut=:konut,
              proje_ticari=:ticari,
              proje_konuttip=:konuttip,
              proje_arsaalan=:arsaalan,
              proje_konutalan=:konutalan,
              proje_isyerialan=:isyerialan,
              proje_otopark=:otopark,
              proje_teslim=:teslim,
              proje_kiraget=:kiraget,
              proje_video=:video,
              proje_etiket=:etiket,
              proje_danisman=:danisman,
              proje_resim=:resim
              ");   
            $projekayit=$projeekle->execute(array(
              'baslik' => $_POST['proje_baslik'],
              'id' => $_POST['uye_id'],
              'unvan' => $_POST['uye_unvan'],
              'detay' => $_POST['proje_detay'],
              'tip' => $_POST['proje_tip'],
              'fiyataz' => $_POST['proje_fiyataz'],
              'fiyatcok' => $_POST['proje_fiyatcok'],
              'adres' => $_POST['proje_adres'],
              'ilce' => $_POST['proje_ilce'],
              'il' => $_POST['proje_il'],
              'enlemboylam' => $_POST['proje_enlemboylam'],
              'konut' => $_POST['proje_konut'],
              'ticari' => $_POST['proje_ticari'],
              'arsaalan' => $_POST['proje_arsaalan'],
              'konutalan' => $_POST['proje_konutalan'],
              'isyerialan' => $_POST['proje_isyerialan'],
              'otopark' => $_POST['proje_otopark'],
              'teslim' => $_POST['proje_teslim'],
              'kiraget' => $_POST['proje_kiraget'],
              'video' => $_POST['proje_video'],
              'etiket' => $_POST['proje_etiket'],
              'danisman' => $_POST['proje_danisman'],
              'konuttip' => $konut_tipleri,
              'resim' => $refimgyol
            ));
    
            if ($projekayit) {
              header("Location:../../projelerim.php?proje=ok");
            }
            else {
              header("Location:../../projelerim.php?proje=no");
            } 
          }
  • 21-10-2017, 14:38:43
    #6
    Kullandığınız html formunda enctype="multipart/form-data" ekli mi?
  • 21-10-2017, 15:09:12
    #7
    DWather adlı üyeden alıntı: mesajı görüntüle
    Kullandığınız html formunda enctype="multipart/form-data" ekli mi?
    Evet ekli.



    LinkHouse adlı üyeden alıntı: mesajı görüntüle
    Php tarafında değişkeni döngüye alıp dizideki elemanları tek tek almalısın. Örnek olarak ;

    $konut_tipleri = ""; foreach ($_POST[proje_konuttip] as $proje){ $konut_tipleri.=$proje.","; } $konut_tipleri değişkeninin değeri şu şekilde olacaktır ; // 3+1,2+1 gibi
    Deneme amaçlı bütün verileri girmeden eklemeye çalışıyordum. Sanırım onun için olmamıştı. Şuan verdiğiniz kodlarla bütün verileri girerek kayıt alabiliyorum. Yardımınız için teşekkür ederim.