• 14-08-2018, 20:52:51
    #1
    Türler Adında sütunum var array olarak gelen veriyi bu sütuna nasıl aralarına virgül ekleyerek kayıt edeilirim

    İstediğim Örnek Kayıt Şekli
    Aksiyon, Macera, Komedi
  • 14-08-2018, 21:03:39
    #2
    $dizi = ["Aksiyon", "Macera", "Komedi"];
    $virgulleayirma= implode(",", $dizi);
    Şeklinde dizi elemanlarını veritabanına aralarına virgül koyarak kayıt ettirebilirsiniz. Verileri tekrar dizi olarak çekmek için;

    $dizi = explode(",", $virgulleayirma);
  • 14-08-2018, 21:06:52
    #3
    strawz adlı üyeden alıntı: mesajı görüntüle
    $dizi = ["Aksiyon", "Macera", "Komedi"];
    $virgulleayirma= implode(",", $dizi);
    Şeklinde dizi elemanlarını veritabanına aralarına virgül koyarak kayıt ettirebilirsiniz. Verileri tekrar dizi olarak çekmek için;

    $dizi = explode(",", $virgulleayirma);
    Yardım içi çok teşekkürler peki bunu nasıl tek tek veri olarak ekleyebilirim

    Yani

    id kg
    1 Aksiyon
    2 Komedi
  • 14-08-2018, 21:09:45
    #4
    meltar95 adlı üyeden alıntı: mesajı görüntüle
    Yardım içi çok teşekkürler peki bunu nasıl tek tek veri olarak ekleyebilirim

    Yani

    id kg
    1 Aksiyon
    2 Komedi
    Yanlış anlamadıysam her elemanı yeni bir satır olarak eklemek istiyorsunuz.

    $dizi = ["Aksiyon", "Macera", "Komedi"];
    
    foreach($dizi as $eleman){
     // Bu alanda $eleman'ı SQL Insert sorgusunun içine sokabilirsiniz.
    }
    Döngü dizi bitene kadar dönecek ve her döndüğünde $eleman değeri sırasına göre değişecek.

    $eleman'ın sırasıyla alacağı değerler;

    1. Aksiyon
    2. Macera
    3. Komedi
  • 14-08-2018, 21:16:38
    #5
    strawz adlı üyeden alıntı: mesajı görüntüle
    Yanlış anlamadıysam her elemanı yeni bir satır olarak eklemek istiyorsunuz.

    $dizi = ["Aksiyon", "Macera", "Komedi"];
    
    foreach($dizi as $eleman){
     // Bu alanda $eleman'ı SQL Insert sorgusunun içine sokabilirsiniz.
    }
    Döngü dizi bitene kadar dönecek ve her döndüğünde $eleman değeri sırasına göre değişecek.

    $eleman'ın sırasıyla alacağı değerler;

    1. Aksiyon
    2. Macera
    3. Komedi
    Warning: Invalid argument supplied for foreach() in on line 51 hatası alıyorum

    Kodum
    $FilmTur = $_POST['filmtur'];
        $virgulleayirma= implode(",", $FilmTur);
        foreach ($virgulleayirma as $key) {
  • 14-08-2018, 21:17:34
    #6
    Json veri tipini araştırın
  • 14-08-2018, 21:27:28
    #7
    meltar95 adlı üyeden alıntı: mesajı görüntüle
    Warning: Invalid argument supplied for foreach() in on line 51 hatası alıyorum

    Kodum
    $FilmTur = $_POST['filmtur'];
        $dizi= implode(",", $FilmTur);
        foreach ($dizi as $key) {

    Eğer $_POST['filmtur']; array olarak gelmiyorsa bunu implode yapamazsınız. Implode fonksiyonu belirlenen ayıraç ile dizideki elemanları ayırır. Eğer inputtan virgülle ayırarak gönderiyorsanız burada explode kullanmanız gerekmekte. Explode fonksiyonunu kullandıktan döngüye sokarak satır satır veritabanına ekleyin.

    $FilmTur = $_POST['filmtur'];
    $dizi= explode(",", $FilmTur);
        foreach ($dizi as $key) {
          //Insert
    }
    Satır satır eklemek istiyorsanız tavsiyem belirlediğiniz kadar checkbox ekleyin ve checkbox name'lerini "filmtur[]" olarak ayarlayın. $_POST['filmtur'] olarak aldığınızda otomatik olarak dizi şeklinde alacaktır.

    $FilmTur = $_POST['filmtur'];
        foreach ($FilmTur as $key) {
          //Insert
    }
    Yine array olarak geliyorsa ve tek sütuna virgül ile ayırarak eklemek istiyorsanız;


    $FilmTur = $_POST['filmtur'];
    $virgulleayirma= implode(",", $FilmTur);
    // Insert $virgulleayirma
    Edit: Cevabı biraz fazla editledim ama anlaşılabillir olmasını istedim. Anlatamadıysam kusuruma bakmayın.
  • 15-08-2018, 10:11:49
    #8
    strawz adlı üyeden alıntı: mesajı görüntüle
    Eğer $_POST['filmtur']; array olarak gelmiyorsa bunu implode yapamazsınız. Implode fonksiyonu belirlenen ayıraç ile dizideki elemanları ayırır. Eğer inputtan virgülle ayırarak gönderiyorsanız burada explode kullanmanız gerekmekte. Explode fonksiyonunu kullandıktan döngüye sokarak satır satır veritabanına ekleyin.

    $FilmTur = $_POST['filmtur'];
    $dizi= explode(",", $FilmTur);
        foreach ($dizi as $key) {
          //Insert
    }
    Satır satır eklemek istiyorsanız tavsiyem belirlediğiniz kadar checkbox ekleyin ve checkbox name'lerini "filmtur[]" olarak ayarlayın. $_POST['filmtur'] olarak aldığınızda otomatik olarak dizi şeklinde alacaktır.

    $FilmTur = $_POST['filmtur'];
        foreach ($FilmTur as $key) {
          //Insert
    }
    Yine array olarak geliyorsa ve tek sütuna virgül ile ayırarak eklemek istiyorsanız;


    $FilmTur = $_POST['filmtur'];
    $virgulleayirma= implode(",", $FilmTur);
    // Insert $virgulleayirma
    Edit: Cevabı biraz fazla editledim ama anlaşılabillir olmasını istedim. Anlatamadıysam kusuruma bakmayın.

    Yardım için teşekkürler fakat zaten dizi olarak geliyor multi bir selectim var oradan seçilenleri tek tek kaydemek istiyorum