2014-12-29 5 views
0

Вот мой код:Вставка же значение дважды в базу данных

$text = $_REQUEST["enable"]; 
$description = 'Debited For Service'; 

foreach($text as $data) 
{ 
    foreach($check as $data1) 
    { 
     $insert="INSERT INTO `wallet_transaction`(`wallet_id`, `debit_amount`, `description`) VALUES ('$esc_id', '$data1', '$data', '$description')"; 
     mysql_query($insert); 
    } 
} 

Результатом является то, что эти запросы выполняются, но я хочу только первые два запроса:

INSERT INTO `wallet_transaction`(`wallet_id`, `debit_amount`, `description`) VALUES ('2', '200', 'Debited For Service') 
INSERT INTO `wallet_transaction`(`wallet_id`, `debit_amount`, `description`) VALUES ('3', '100', 'Debited For Service') 

INSERT INTO `wallet_transaction`(`wallet_id`, `debit_amount`, `description`) VALUES ('2', '200', 'Debited For Service') 
INSERT INTO `wallet_transaction`(`wallet_id`, `debit_amount`, `description`) VALUES ('3', '100', 'Debited For Service') 
+1

Вы пытались вставить в базу данных без этих проработок? – frantsium

+1

Что находится в '$ _REQUEST [" enable "]' при отправке формы? Кроме того, похоже, что у вас есть уязвимость SQL-инъекций здесь - вам либо нужно будет избегать ваших данных, либо, еще лучше, переключиться на современную библиотеку, поддерживающую параметризацию. – halfer

+0

Вы хотите добавить 4 значения в 3 поля? или .. ? – frantsium

ответ

1

Просто используйте один цикл , а не вложенные петли, а также доступ к соответствующим элементам обоих массивов.

foreach ($text as $i => $data) { 
    $data = mysql_real_escape_string($data); 
    $data1 = mysql_real_escape_string($check[$i]); 
    $insert="INSERT INTO `wallet_transaction`(`wallet_id`, `debit_amount`, `description`) VALUES ('$esc_id', '$data1', '$data', '$description')"; 
    mysql_query($insert); 
} 

Есть еще одна проблема: у вас есть только 3 столбца, которые нужно вставить, но у вас есть 4 значения. Я предполагаю, что это была просто ошибка копирования.

0

это, вероятно, из-за вас обстреливают запрос в внутреннем цикле,

пожалуйста пойти с этим,

$text = $_REQUEST["enable"]; 
$description = 'Debited For Service'; 
foreach($text as $data) 
{ 
    foreach($check as $data1) 
    { 
     $inData = $data;  
    } 
    $insert="INSERT INTO `wallet_transaction`(`wallet_id`, `debit_amount`, `description`) VALUES ('$esc_id', '$data1', '$inData', '$description')"; 
    mysql_query($insert); 
} 

думаю, что это будет работать

0

заменить ниже код, для быстрого решения

$quick_fix=1; 
foreach($text as $data) 
{ 
    if($quick_fix==1){ 
     foreach($check as $data1) 
     { 
      $insert="INSERT INTO `wallet_transaction`(`wallet_id`, `debit_amount`, `description`) VALUES ('$esc_id', '$data1', '$data', '$description')"; 
      mysql_query($insert);   
     } 
     $quick_fix++; 
    } 
} 
Смежные вопросы