繁体   English   中英

如何使用Php中的两个数组值更新数据库表中的一列

[英]How to Update one column in a database table using two array values in Php

在这里,我结合了两个数组来更新Employee表中名为Age的列。 但不幸的是,该列的值没有得到更新。

波纹管$names[]$ages[]是两个数组。

foreach (array_combine($names, $ages) as $e => $f) 
{
$sql = "UPDATE `Employee` SET `Age`= '" . $e . "' WHERE `A`= '" . $f . "'";
$query= mysql_query($sql);
} 

相反,如果我给打印命令

 echo $sql  // its printing the correct command, like

UPDATE `Employee` SET `Age`= '41' WHERE `A`= '" . Samuel . "'
UPDATE `Employee` SET `Age`= '46' WHERE `A`= '" . Sonal . "'

我知道更新SQL查询中的数组有问题,但我不知道如何纠正它。

我想你想在你的foreach()循环$sql翻转$e$f

foreach (array_combine($names, $ages) as $e => $f){
   $sql = "UPDATE `Employee` SET `Age`= '" . $f . "' WHERE `A`= '" . $e . "'";
   $query= mysql_query($sql);
}

这会给你

UPDATE `Employee` SET `Age`= '41' WHERE `A`= 'Samuel'
UPDATE `Employee` SET `Age`= '46' WHERE `A`= 'Sonal'

代替

UPDATE `Employee` SET `Age`= 'Samuel' WHERE `A`= '41'
UPDATE `Employee` SET `Age`= 'Sonal' WHERE `A`= '46'

该查询可以这样写...

$sql = "
UPDATE Employee SET Age= $e WHERE A= '$f';
";

另外,(显然)不要存储某人的年龄。 存储他们的DOB。 请注意,现在不建议使用mysql_扩展名。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM