所以我正在更新数据库表,并且从输入中接收到数组,因为有多个值(id [],price [],product [],description []等),但我想获取价格[]在foreach循环外的最后一个值 我使用这个foreach循环来更新MAIN数据库表
foreach ($_POST['id'] as $key => $id) {
$array1 = $_POST['product'][$key];
$array2 = $_POST['priceunit'][$key];
$array3 = $_POST['quantity'][$key];
$array4 = $_POST['sum'][$key];
$array5 = $_POST['totalprice'][$key];
$query = $link -> prepare("UPDATE table SET product = ?, priceunit = ?, quantity = ?, sum = ?, totalprice = ? WHERE id = ?");
$query -> bind_param('sddddi',$array1,$array2,$array3,$array4,$array5,$id);
$result = $query-> execute();
$query -> close();
}
现在我想从$ array5中获取最后一个值,这样我就可以在循环外进行操作
$sql = $link -> prepare("UPDATE table2 SET price = ? WHERE id = ?;");
$sql -> bind_param("ds",
$total, <- array5 last value
$_GET['id']);
$query = $sql -> execute();
$sql -> close();
这是输入
<tbody>
<?php
$sql = $link -> prepare("SELECT * FROM table WHERE id_proposta = ?;");
$sql -> bind_param('s',
$_GET['id']);
$sql -> execute();
$result = $sql -> get_result();
for ($i = 0; $r = $result -> fetch_assoc(); $i++){ ?>
<tr>
<input type="hidden" value="<?php echo $r['id']; ?>" name="id[]">
<td><textarea class="form-control" name="product[]" rows="3" id="textareaAutosize" data-plugin-textarea-autosize><?php echo $r['product']; ?></textarea></td>
<td><input type="text" class="priceunit" value="<?php echo $r['priceunit']; ?>" name="priceunit[]"></td>
<td><input type="text" class="qtd" value="<?php echo $r['quantity']; ?>" name="quantity[]"></td>
<td><input type="text" class="sum" value="<?php echo $r['sum']; ?>" name="sum[]" readonly></td>
<td><input type="text" class="totalprice" value="<?php echo $r['totalprice']; ?>" name="totalprice[]" readonly></td>
</tr>
<?php } $sql -> close(); ?>
</tbody>
谢谢。
答案 0 :(得分:2)
由于您是在循环中执行此操作,所以:
$array5 = $_POST['totalprice'][$key];
然后,循环完成后,$array5
将是最后一个$_POST['totalprice']
。因此,只需使用它即可:
$sql->bind_param("ds",
$array5,
$_GET['id']);
或者,如果不使用所有这些临时变量,甚至可以这样做:
$sql->bind_param("ds",
$_POST['totalprice'][$key],
$_GET['id']);