[英]What's wrong with my foreach php/MySQL code?
I tried to insert multiple rows from one form using checkboxes, include take values from input box, all of them has the structure: 我尝试使用复选框从一个表单插入多行,包括从输入框中获取值,所有这些都具有以下结构:
<input id="Valor" type="text" name="Valor[]" value="<?php echo $row2["Valor"]; ?>" />
and the checkbox is like: 并且复选框如下:
<input type="checkbox" name="Pago[]" id="Pago" value="<?php echo $row2["IdSolicitudTarjeta"]; ?>" />
But when I'll send the form at 'insertmultiple.php' I use the following code but only shows 2 results. 但是当我在'insertmultiple.php'发送表单时,我使用以下代码,但只显示2个结果。 Don't matter how many times I tried show the rest, don't works: 不管我尝试显示其余部分多少次,都行不通:
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." -- ".$FechaConsignacion." -- ".$Producto." -- ";
echo $FormaPago." -- ".$Valor." -- ".$Detalle." -- ";
echo $FechaRegistrar."<br>";
}
please help! 请帮忙! :( :(
First thing: not key
but $key
第一件事:不是key
而是$key
foreach($_POST['Pago'] as $key => $val) {
I dont see any SQL code though. 我没有看到任何SQL代码。
ADDENDUM 附录
Hm... it seems like a really messy way to insert things into database. 嗯...将事物插入数据库似乎是一种非常麻烦的方法。 As Cyclone noticed you do not purify your input prior to inserting the date. 正如Cyclone注意到你在插入日期之前没有净化你的输入。 This is wrong but its a story for another post :p 这是错的,但它是另一篇文章的故事:p
Besides consider one thing: 除了考虑一件事:
Are you sure you want to use 你确定要使用吗?
$Producto = $_POST['Producto'][$key];
and not: 并不是:
$Producto = $_POST['Producto'][$val];
You seem to store some id in those checkboxes... otherwise you may have a scenario like: 您似乎在这些复选框中存储了一些ID ...否则您可能会遇到以下情况:
1 [x]
2 [ ]
3 [ ]
4 [x]
So I blieve that $_POST['Pago']
will have only 2 fields 1 and 4... but their key will be 1 and 2 as inactive checkboxes will not have value and will not end-up in the array. 所以我相信$_POST['Pago']
将只有2个字段1和4 ...但是它们的键将是1和2,因为不活动的复选框将没有值并且不会在数组中结束。 I may be wrong though... shame to admit I do not remember how it works precisely Oo 我可能错了......但是承认我不记得它是如何正常工作的
The problem is solved, thanks for your help!!!!!, that's work with the next changes: 问题解决了,感谢您的帮助!!!!!,这与下一个更改有关:
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 " ------ ";
print "$Valor[$val]";
echo " ------ ";
print "$Producto[$val]";
echo " ------ ";
print "$FormaPago[$val]";
echo " ------ ";
print "$FechaConsignacion[$val]";
echo " ------ ";
print "$Detalle[$val]";
echo " ------ ";
print "$FechaRegistrar[$val]";
echo "<br><hr>";
}
unset($val);
} }
I guess, now I can Insert that rows without problems, 我想,现在我可以毫无问题地插入那些行,
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.