【发布时间】:2016-04-15 05:56:35
【问题描述】:
我正在尝试更新数据库中的多个值。但是,单击“提交”按钮时,我一次只能更新一个值。
注意:- 我只需要知道如何遍历 $_POST 变量,而不必对它们进行硬编码并将它们传递给函数(如果它不为 NULL)。
关于如何让这个提交多个字段的任何建议。
HTML:-
First Name :
<input type="text" name="CUSTOMER_FNAME" value="<?php if(isset($_POST['CUSTOMER_FNAME'])) echo htmlspecialchars($_POST['CUSTOMER_FNAME']); ?>"
placeholder="<?php echo $customerRegistration->property('CUSTOMER_FNAME');?>" />
LastName:
<input type="text" name="CUSTOMER_LNAME" value="<?php if(isset($_POST['CUSTOMER_LNAME'])) echo htmlspecialchars($_POST['CUSTOMER_LNAME']); ?>"
placeholder="<?php echo $customerRegistration->property('CUSTOMER_LNAME');?>" />
Email:
<input type="text" name="EMAIL" value="<?php if(isset($_POST['EMAIL'])) echo htmlspecialchars($_POST['EMAIL']); ?>"
placeholder="<?php echo $customerRegistration->property('EMAIL');?>" />
函数在这里:-
$id= $_SESSION['id'];
if (isset($_POST['submit'])){
foreach ($_POST as $key => $value) {
if ($value!= NULL && $key!="submit") {
$customerRegistration->update_one($id,$key,$value);
}
}
}
public function update_one($id,$key,$value){
mysqli_real_escape_string($con,$value)
$sql = "UPDATE `customer_registration` SET ";
$sql .= "`{$key}`="."'{$value}' ";
$sql .= "WHERE `CUSTOMER_ID`="."'{$id}' ";
mysqli_query($con,$sql);
}
注意:- $customerRegistration 是 Customer Registration 类的一个实例,它可以访问 update_one($id, $key,$value) 方法并且可以针对单个值进行更新。
我只需要知道 $_POST 变量中的循环如何保持运行,只要它不为空(编辑多个值。)
Var 转储结果:-
array(6) { ["CUSTOMER_FNAME"]=> string(4) "UMAR" ["CUSTOMER_LNAME"]=> string(5) "AFTAB" ["EMAIL"]=> string(16) "abcd@hotmail.com" ["PHONE"]=> string(10) "4154561235" ["CUSTOMER_DOB"]=> string(0) "" ["submit"]=> string(14) "Submit Changes" }
【问题讨论】:
-
如果不知道
$customerRegistration是什么实例,很难说。 -
在你的 $_POST 中运行一个 var_dump,看看是否所有需要的值都在那里
-
@wogsland 但更新功能工作正常
-
@PhiterFernandes 他们是……
-
我的问题是遍历它们