2009-05-18 3 views
1

Я отправляю форму, которая имеет много похожих полей (artist1, artist2, .... artist20). Я пытаюсь добавить их в базу данных, но я не уверен, как легко получить все опубликованные данные без необходимости записывать их отдельно. Как я могу объединить int в строку, чтобы мне не пришлось писать каждый из них? Это один из способов я пытался что не работал:Сбор данных POST из похожих полей

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

Я также попытался (который не работал):

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

ответ

5

Вы можете назвать свои HTML-элементы в квадратные скобки и PHP преобразует их в массив для вас:

<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" /> 

при проводке, что это то, что вы получите в PHP:

print_r($_POST); 

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

... для получения их в базе данных, см. Этот вопрос: insert two kinds of array in the same table

+0

ok. получить их в массив будет работать отлично! Благодаря! –

Смежные вопросы