嘿伙计我需要你的帮助,我有这个表FIDDLE在td中的输入,你可以看到相同的名字,我想更新一些表但是不行,这是我的代码:
$CA_id = $_POST['CA_id'];
$i = 1;
while (isset($_POST["item_id$i"])) {
$item_id = $_POST["item_id$i"];
$j = 1;
while (isset($_POST["item_Cant$i$j"])) {
$item_Cant = intval($_POST["item_Cant$i$j"]);
$CECO_cod = intval($_POST["CECO_cod$i$j"]);
$item_desc = mysql_real_escape_string($_POST["item_desc$i$j"]);
$item_enduser = mysql_real_escape_string($_POST["item_enduser$i$j"]);
$query = "
UPDATE
items
SET
item_Cant = '$item_Cant',
CECO_cod = '$CECO_cod',
item_desc = '$item_desc',
item_enduser = '$item_enduser'
WHERE
CA_id = $CA_id
AND item_id = $item_id
";
mysql_query($query) or die(mysql_error());
$j++;
}
$i++;
}
我希望你明白,你可以帮我修改我的代码,谢谢。
解决方案:
我只是改变了
echo "\t\t<tr class=\"row$r\">
<td><input readonly name= 'item_id".$a."' value='".htmlentities($row['item_id'])."'/></td>
<td><input name= 'item_Cant".$a."1' value='".htmlentities($row['item_Cant'])."'/></td>
<td><input name= 'CECO_cod".$a."2' value='".htmlentities($row['CECO_cod'])."'/></td>
<td><input name= 'item_desc".$a."3' value='".$row['item_desc']."'/></td>
<td><input name= 'item_enduser".$a."4' value='".$row['item_enduser']."'/></td>
</tr>\n";
为此:
echo "\t\t<tr class=\"row$r\">
<td><input readonly name= 'item_id".$a."' value='".htmlentities($row['item_id'])."'/></td>
<td><input name= 'item_Cant".$a."1' value='".htmlentities($row['item_Cant'])."'/></td>
<td><input name= 'CECO_cod".$a."1' value='".htmlentities($row['CECO_cod'])."'/></td>
<td><input name= 'item_desc".$a."1' value='".$row['item_desc']."'/></td>
<td><input name= 'item_enduser".$a."1' value='".$row['item_enduser']."'/></td>
</tr>\n";
现在就像一个魅力!谢谢大家!
答案 0 :(得分:0)
你让生活变得非常困难。
如果使用Field数组创建表单,请执行以下操作: -
<table width="400" border="1">
<tbody>
<tr>
<td><input type="text" value="" name="item_id[]"></td>
<td><input type="text" value="" name="item_Cant[]"></td>
<td><input type="text" value="" name="CECO_cod[]"></td>
<td><input type="text" value="" name="item_desc[]"></td>
<td><input type="text" value="" name="item_enduser[]"></td>
</tr>
<tr>
<td><input type="text" value="" name="item_id[]"></td>
<td><input type="text" value="" name="item_Cant[]"></td>
<td><input type="text" value="" name="CECO_cod[]"></td>
<td><input type="text" value="" name="item_desc[]"></td>
<td><input type="text" value="" name="item_enduser[]"></td>
</tr>
<tr>
<td><input type="text" value="" name="item_id[]"></td>
<td><input type="text" value="" name="item_Cant[]"></td>
<td><input type="text" value="" name="CECO_cod[]"></td>
<td><input type="text" value="" name="item_desc[]"></td>
<td><input type="text" value="" name="item_enduser[]"></td>
</tr>
<tr>
<td><input type="text" value="" name="item_id[]"></td>
<td><input type="text" value="" name="item_Cant[]"></td>
<td><input type="text" value="" name="CECO_cod[]"></td>
<td><input type="text" value="" name="item_desc[]"></td>
<td><input type="text" value="" name="item_enduser[]"></td>
</tr>
<tr>
<td><input type="text" value="" name="item_id[]"></td>
<td><input type="text" value="" name="item_Cant[]"></td>
<td><input type="text" value="" name="CECO_cod[]"></td>
<td><input type="text" value="" name="item_desc[]"></td>
<td><input type="text" value="" name="item_enduser[]"></td>
</tr>
<tr>
<td><input type="text" value="" name="item_id[]"></td>
<td><input type="text" value="" name="item_Cant[]"></td>
<td><input type="text" value="" name="CECO_cod[]"></td>
<td><input type="text" value="" name="item_desc[]"></td>
<td><input type="text" value="" name="item_enduser[]"></td>
</tr>
</tbody>
</table>
这有很多好处,你可以在数组上foreach
,你不需要使用复杂的2级for循环,如果你想添加一行简单等等。
所以现在你的代码看起来像这样: -
$CA_id = $_POST['CA_id'];
foreach( $_POST['item_id'] as $idx => $item_id ) {
if ( isset($_POST['item_Cant'][$idx]) ) {
$item_Cant = intval($_POST["item_Cant"][$idx]);
$CECO_cod = intval($_POST["CECO_cod"][$idx]);
$item_desc = mysql_real_escape_string($_POST["item_desc"][$idx]);
$item_enduser = mysql_real_escape_string($_POST["item_enduser"][$idx]);
$query = "
UPDATE
items
SET
item_Cant = '$item_Cant',
CECO_cod = '$CECO_cod',
item_desc = '$item_desc',
item_enduser = '$item_enduser'
WHERE
CA_id = $CA_id
AND item_id = $item_id
";
$result = mysql_query($query);
if ( ! $result ) {
// then you have an error, report it somehow
echo 'UPDATE FAILED: ';
echo 'Error code: ' . mysql_errno(); . ' Error Desc : ' . mysql_error() . '<br>';
echo $query . '<br>';
}
}
PS:您应该使用mysqli_ *或PDO扩展而不是mysql_ *扩展,因为它们已被弃用,并且很快就会从PHP中删除。