目前我对php很缺乏经验,但需要一个简单的程序。我创建了一个小网站,可以存储一些数据(产品名称,产品数量和产品价格)
我把它称为一个表,在每个表行中都包含一个包含数据的输入(文本)字段。
我需要这些数据是可编辑的,只需按一下按钮即可保存所有数据,但我无法让它工作......;(
这是我目前的代码:
$products_array = array("");
$amounts_array = array("");
$prices_array = array("");
$id_array = array("");
<form method="POST" name="update">
<?php
foreach($object as $objects){
array_push($products_array, $objects['product']);
array_push($amounts_array, $objects['amount']);
array_push($prices_array, $objects['price']);
array_push($id_array, $objects['id']);
echo "<tr>
<td><input type='text' name='".$objects['id']."' value='". $objects['product'] ."'></td>
<td><input type='text' name='".$objects['id']."' value='". $objects['amount'] ."'></td>
<td><input type='text' name='".$objects['id']."' value='". $objects['price'] ."'></td>
</tr>";
}
?>
<input type="submit" value="Opslaan">
</form>
这将从文本字段中接收数据库中的所有行,并将其数据存储在数组中。
这是我尝试更新它的方式:
<?php
if(isset($_POST['update'])){
for($i = 1; $i <= $count; $i++){
$sql = 'UPDATE objects SET product = "$products_array[$i]", amount = "$amounts_array[$i]", price = "$prices_array[$i]" WHERE id = "$id_array[$i]" ';
$sql = $conn->query($sql);
}
unset($_POST);
header('Location: index.php');
}
?>
任何人都有任何线索如何解决这个问题或有更好的方法?
提前致谢^ _ ^
答案 0 :(得分:0)
您需要通过它的id来唯一标识每个产品详细信息,即名称,金额和价格,以执行更新操作。所以解决方案会是这样的:
$object
数组足以解决此问题。您的<form>
应该是这样的:(仔细查看<input>
元素)
<form method="POST">
<table>
<?php
foreach($object as $objects){
?>
<tr>
<td><input type="text" name="objects[<?php echo $objects['id']; ?>][product]" value="<?php echo $objects['product']; ?>" /></td>
<td><input type="text" name="objects[<?php echo $objects['id']; ?>][amount]" value="<?php echo $objects['amount']; ?>" /></td>
<td><input type="text" name="objects[<?php echo $objects['id']; ?>][price]" value="<?php echo $objects['price']; ?>" /></td>
</tr>
<?php
}
?>
</table>
<input type="submit" name="update" value="Opslaan">
</form>
这就是处理表单以执行UPDATE
操作的方法。
if(isset($_POST['update'])){
foreach($_POST['objects'] as $id => $products_array){
$sql = "UPDATE objects SET product = '" . $products_array['product'] . "', amount = '" . $products_array['amount'] . "', price = '" . $products_array['price'] . "' WHERE id = '" . $id . "'";
$sql = $conn->query($sql);
}
// your code
}
旁注:
$_POST['objects']
的完整结构,请执行var_dump($_POST['objects']);