Benzer alanlardan toplama POST verileri

1 Cevap php

Birçok benzer alanları (artist1, artist2, .... artist20) olan bir form ilanıyla. Ben bunları bir veritabanına eklemek çalışıyorum ama ben kolayca her birinin ayrı ayrı yazmak zorunda ile gönderilen tüm verileri almak için nasıl emin değilim. Ben her birini yazmak zorunda değilsin ki nasıl bir dizeye bir int birleştirebilirsiniz? Bu işe yaramadı denedim bir yoludur:

for( $i=0; $i <= 20; $i++ )
{
   $artist = $_POST['artist'.$i] 
}

Ben de (işe yaramadı) çalıştı:

for( $i=0; $i <= 20; $i++ )
{
   $art = 'artist' . $i;
   $artist = $_POST[ $art ];
}

1 Cevap

Köşeli parantez ile HTML elemanları adına ve PHP sizin için bir diziye çevirebiliriz olacaktır:

<input type="text" name="artist[]" value="abc" />
<input type="text" name="artist[]" value="def" />
<input type="text" name="artist[]" value="ghi" />
<input type="text" name="artist[]" value="jkl" />

Bunu yayınlamak zaman, bu PHP alırsınız budur:

print_r($_POST);

/* array(
    artist => array(
        0 => "abc",
        1 => "def",
        2 => "ghi",
        3 => "jkl"
    )
) */

... Bir veritabanı içine almak gibi, bu soruya bakın: http://stackoverflow.com/questions/861239/insert-two-kinds-of-array-in-the-same-table