Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 正在更新数据库中特定id的数组值_Php_Mysql - Fatal编程技术网

Php 正在更新数据库中特定id的数组值

Php 正在更新数据库中特定id的数组值,php,mysql,Php,Mysql,我正在开发一个web应用程序,我需要让用户在一个表的tr中更新几个tds。到目前为止,我可以获取并显示相应td中的数据库值。但当我尝试更新它们时,表中所有td的最后一个tr中最后输入的值都会更新 下面是我正在尝试的查询部分。所有值都被视为数组,因为值是从多个输入框中收集的 $cno="123"; $c = count($ndv); for($i=0;$i<$c;$i++) { $query_dv="UPDATE device SET cid = '$cno',name = '$ndv[

我正在开发一个web应用程序,我需要让用户在一个表的tr中更新几个tds。到目前为止,我可以获取并显示相应td中的数据库值。但当我尝试更新它们时,表中所有td的最后一个tr中最后输入的值都会更新

下面是我正在尝试的查询部分。所有值都被视为数组,因为值是从多个输入框中收集的

$cno="123";
$c  = count($ndv);
for($i=0;$i<$c;$i++)
{

$query_dv="UPDATE device SET cid = '$cno',name = '$ndv[$i]',type = '$tdv[$i]',serialno = '$sdv[$i]',model = '$mdv[$i]',location = '$ldv[$i]'  WHERE cid = ".$cno;

$sql_device = mysqli_query($conn, $query_dv) or die(mysqli_error($conn));

}
$cno=“123”;
$c=计数($ndv);

对于($i=0;$i您的问题是您没有唯一地标识要更新的行,为此,请在数据库中添加一个名为
id
的列,使其成为主键并使其自动递增,然后在表中添加一个包含该id的隐藏/禁用输入,并按照

 $query_dv="UPDATE device SET name = '$ndv[$i]',type = '$tdv[$i]',serialno = '$sdv[$i]',model = '$mdv[$i]',location = '$ldv[$i]'  WHERE id = " . $id[$i];

我删除了对
cid
的更新,因为从您的问题来看,它看起来没有变化,因此无需更新。

这是因为您语句末尾的where子句,
where cid=".$cno;
您只是在更新行,其中,
cid=123
循环的每一次迭代,
$cno
的值应该随着循环的进行而改变,但是我必须根据
cid
的值来更新这些值。我的意思是..对于cid=123,表的td中有几列和几行值。因此,我试图更新为特定的cid值标注这些值的日期。希望您理解,但是每行的
cid
是唯一的,对吗?您只是反复选择它等于123的位置。这不是唯一的。这只是表中的另一列。对于特定的cid值,有多个条目。它可能是重复值,也可能不是重复值。因此cid不是用主键或唯一键定义的,那么您应该唯一地标识要更新的
tr==行
,就像
中的cid=“.$cno.”和id=“.id[$i]
,甚至只使用
$i