2014-11-04 4 views
0

Я пытаюсь вставить значения в таблицу из двух массивов. Мне нужно вставить соответствующие значения из array1 и array2 в таблицу в виде строки. т.е. строка таблицы выглядит так:Вставить строки из двух массивов в таблицу mysql в php

value1, array1[0], array2[0] ... 
value1, array1[1], array2[1] ... 

Я пробовал сделать это с двумя петлями foreach. Но значение внутри внутреннего лупа повторяется. Вот мой код:

<?php 
$servicetype=$_POST['servicetype']; 
$serviceamt=$_POST['amount']; 
foreach($servicetype as $sertype) 
{ 
foreach($serviceamt as $seramt) 
{ 
$amcinsert2=mysql_query("insert into amc_service_types (amc_service_id,service_type,service_amount) values('$id','$sertype','$seramt')"); 
break; 
} 

} 
?> 

Когда я выполняю это, таблица будет выглядеть следующим образом:

value1, array1[0], array2[0] ... 
value2, array1[1], array2[0] ... 
value3, array1[2], array2[0] ... 

Я не понимаю, где я должен изменить свой код. Может кто-нибудь мне помочь ..

+0

использование 'for' петли вместо –

+0

если вы хотите повторить' VALUE1' каждый раз, вы должны вставить это статически, но почему array2 дает неправильный результат, я не знаю .... –

ответ

1

Если массивы численно индексированный и имеют те же ключи, вы можете цикл над ними, как это:

for($i = 0 ; $i < count($servicetype) ; $i++) { 
    $amcinsert2=mysql_query("insert into amc_service_types (amc_service_id,service_type,service_amount) values('$id','" . $servicetype[$i] "','" . $serviceamt[$i] . "')"); 

} 

Кроме того, mysql_ * функции устарели, вы должны заменить их с функциями PDO или mysqli_ *.

+0

Thakns за ваш ценный ответ. Это помогло мне .. – Aishwaryas

1

В начале вам необходимо убедиться, что у вас одинаковый размер обоих массивов, на самом деле то, что вы делаете, добавит n * n-комбинации к mysql, а не то, что вы хотите сделать, от первого запуска, который в любом случае собирается быть первым массивом [0], поэтому постарайтесь сделать так:

<?php 
$servicetype=$_POST['servicetype']; 
$serviceamt=$_POST['amount']; 
var i=0; 
foreach($servicetype as $sertype) 
{ 
$amcinsert2=mysql_query("insert into amc_service_types (amc_service_id,service_type,service_amount) values('$id','$sertype','$serviceamt[$i]')"); 
$i++; 
} 
?> 
Смежные вопросы