2017-01-30 4 views
0

У меня есть цикл FOREACH, который не собирает первый элемент в массиве.PHP Looping через цикл FOREACH

У меня есть представить форму, которая имеет следующее:

<input name="repaired[<?php echo $row_Faults['UniqueID']; ?>]" type="checkbox" id="repaired" value="1" class="required"/> 

Если я эхо $ _POST [ «ремонт»] массив я вижу две записи, но когда код выполняется первая запись не была обработана ,

foreach($_POST['repaired'] as $uniqueID => $repairedValue){ 

$updateSQL = sprintf("UPDATE ".$Hist." SET Status=%s, LettoStatus=%s WHERE UniqueID= '".$_POST["UniqueID"]."'", 
GetSQLValueString($_POST['Status'] = $StatusCode , "int"), 
GetSQLValueString($_POST['LettoStatus'] = $LettoCode , "int")); 

mysql_select_db($database_iMaint, $iMaint); 
$Result1 = mysql_query($updateSQL, $iMaint) or die(mysql_error()); 
} 

Может ли кто-нибудь увидеть, куда я иду, не так.

Большое спасибо заранее за ваше время.

+4

** Не **. **Когда-либо**. ** Использование **. 'Mysql_ *'. –

+1

Хотя я не имею прямого отношения к вашему вопросу, я настоятельно рекомендую дезинфицировать ваши входы. См. Http://stackoverflow.com/questions/129677/whats-the-best-method-for-sanitizing-user-input-with-php – pandoraEudora

+0

@kennethЧто спасибо за ваш ввод, как только я получу этот цикл foreach, я тогда посмотрите на санитацию. Спасибо – DCJones

ответ

3

Вы $uniqueID переменных инициализируются в вашем Еогеаспе, но в вашем $ UpdateSQL вы все еще используете $_POST["UniqueID"] Так все, что вам нужно, чтобы изменить свою $updateSQL

$updateSQL = sprintf("UPDATE ".$Hist." SET Status=%s, LettoStatus=%s WHERE 
    UniqueID= '".$uniqueID."'",  
    GetSQLValueString($_POST['Status'] = $StatusCode , "int"), 
    GetSQLValueString($_POST['LettoStatus'] = $LettoCode , "int")); 
Смежные вопросы