使用数组更新表列,php

时间:2016-09-21 06:56:00

标签: php mysql arrays

我从输入字段中获取了三个数组(这些字段在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列,即; APIDActualReasonAPID是表格的主键。

我想使用数组中的值更新列ActualReason。这是我的代码(不起作用),用于更新:

$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

知道我做错了什么吗?或者如何使它工作?.....我不熟悉数组。

2 个答案:

答案 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个项目。