Что не так с моим php / MySQL кодом foreach? - PullRequest
1 голос
/ 02 ноября 2011

Я попытался вставить несколько строк из одной формы с помощью флажков, включить значения из поля ввода, все они имеют структуру:

<input id="Valor" type="text" name="Valor[]" value="<?php echo $row2["Valor"];  ?>" />

и флажок выглядит так:

<input type="checkbox" name="Pago[]" id="Pago" value="<?php echo $row2["IdSolicitudTarjeta"]; ?>" />

Но когда я отправлю форму на «insertmultiple.php», я использую следующий код, но показывает только 2 результата.Неважно, сколько раз я пытался показать остальное, не работает:

foreach($_POST['Pago'] as key => $val) {
$Producto = $_POST['Producto'][$key];
$FormaPago = $_POST['FormaPago'][$key];
$FechaConsignacion = $_POST['FechaConsignacion'][$key];
$Valor = $_POST['Valor'][$key];
$Detalle = $_POST['Detalle'][$key];
$FechaRegistrar = $_POST['FechaRegistrar'][$key];

echo $Pago."&nbsp;--&nbsp;".$FechaConsignacion."&nbsp;--&nbsp;".$Producto."&nbsp;--&nbsp;";
echo $FormaPago."&nbsp;--&nbsp;".$Valor."&nbsp;--&nbsp;".$Detalle."&nbsp;--&nbsp;";
echo $FechaRegistrar."<br>";

}

, пожалуйста, помогите!(

Ответы [ 2 ]

3 голосов
/ 02 ноября 2011

Первым делом: не key, а $key

foreach($_POST['Pago'] as $key => $val) {

Я не вижу никакого кода SQL.

ДОПОЛНЕНИЕ

Хм ... кажется, это очень грязный способ вставить вещи в базу данных. Как заметил Циклон, вы не очищаете введенные данные до вставки даты. Это неправильно, но это история для другого поста: p

Кроме того, рассмотрим одну вещь:

Вы уверены, что хотите использовать

$Producto = $_POST['Producto'][$key];

а не:

$Producto = $_POST['Producto'][$val];

Кажется, вы храните какой-то идентификатор в этих флажках ... в противном случае у вас может быть такой сценарий:

1  [x]
2  [ ]
3  [ ]
4  [x]

Итак, я думаю, что $_POST['Pago'] будет иметь только 2 поля 1 и 4 ... но их ключ будет 1 и 2, поскольку неактивные флажки не будут иметь значения и не попадут в массив. Хотя я могу ошибаться ... Стыдно признаться, я не помню, как именно это работает

0 голосов
/ 02 ноября 2011

Проблема решена, спасибо за помощь !!!!!, вот работа со следующими изменениями:

if(!empty($_POST['Pago'])) {
    $aLista = array_keys($_POST['Pago']);
    $Valor = $_POST['Valor'];
    $Pago = $_POST['Pago'];
    $Producto = $_POST['Producto'];
    $FormaPago = $_POST['FormaPago'];
    $FechaConsignacion = $_POST['FechaConsignacion'];
    $Detalle = $_POST['Detalle'];
    $FechaRegistrar = $_POST['FechaRegistrar'];
foreach($aLista as $key => $val) {
      print "$aLista[$key] => $val";
      echo "&nbsp;&nbsp;------&nbsp;&nbsp;";
      print "$Valor[$val]";
      echo "&nbsp;&nbsp;------&nbsp;&nbsp;";
      print "$Producto[$val]";
      echo "&nbsp;&nbsp;------&nbsp;&nbsp;";
      print "$FormaPago[$val]";
      echo "&nbsp;&nbsp;------&nbsp;&nbsp;";
      print "$FechaConsignacion[$val]";
      echo "&nbsp;&nbsp;------&nbsp;&nbsp;";
      print "$Detalle[$val]";
      echo "&nbsp;&nbsp;------&nbsp;&nbsp;";
      print "$FechaRegistrar[$val]";
      echo "<br><hr>";
}
unset($val);

}

Полагаю, теперь я могу без проблем вставить эти строки,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...