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


Updating array values for a particular id in database

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

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

$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));
}

所以现在我试着用值123,1,1,1,1和123,2,2,2,2更新

我得到123,2,2,2,2和123,2,22,2,2,2。。我确实知道,由于for循环,它会被重新更新。所以我试图修复这部分代码。我正在努力修复它。任何帮助都将不胜感激。

您的问题是,您没有唯一地标识要更新的行,为此,向数据库中添加一个名为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的更新,因为从你的问题来看,它看起来没有变化,所以不需要更新。