我从输入字段中获取了三个数组(这些字段在while循环中)。
$act = $_POST["act"];
$apid = $_POST["relate"];
$reason = $_POST['reason'];
数组$ act,$ apid,$ reason包含要在每列上更新的值。例如:
$act=(1,2,3,4,5,6);
$apid=(303,304,305,306,307,308);
$reason=(delivery,contract,cargo,offloading,uploading,seal);
在数据库方面,我的表ActivityProduct
有3列,即; APID
,Actual
,Reason
。 APID
是表格的主键。
我想使用数组中的值更新列Actual
和Reason
。这是我的代码(不起作用),用于更新:
$values=array('reas'=>$reason,'actu'=>$act,'ids'=>$apid);
foreach ($values as $key)
{
$update_row =mysql_query("UPDATE ActivityProduct SET Actual= '$key['actu']}',Reason='{$key['reas']}' WHERE APID='{$key['ids']}' " )
}
这是我得到的错误:
Notice: Undefined index: actu in C:\xampp\htdocs\PD\validate\save-actual.php on line 65
Notice: Undefined index: reas in C:\xampp\htdocs\PD\validate\save-actual.php on line 65
Notice: Undefined index: ids in C:\xampp\htdocs\PD\validate\save-actual.php on line 65
知道我做错了什么吗?或者如何使它工作?.....我不熟悉数组。
答案 0 :(得分:0)
It should be like this,remove the for loop
$values=array('reas'=>$reason,'actu'=>$act,'ids'=>$apid);
$update_row =mysql_query("UPDATE ActivityProduct SET Actual= '".$values['actu']."',Reason='".$values['reas']."' WHERE APID='".$values['ids']."'");
答案 1 :(得分:0)
他们$ key变量不是数组,尝试在循环中打印它,你会看到。 并检查documentation和foreach循环的示例以熟悉它。
无论如何你不需要这个循环,删除循环并试试这个
$update_row =mysql_query("UPDATE ActivityProduct SET Actual= {$values['actu']},Reason='{$values['reas']}' WHERE APID='{$values['ids']}' " )
如果您将运行此foreach,则更新将执行3次,因为您在阵列中有3个项目。