Php 正在更新数据库中特定id的数组值
我正在开发一个web应用程序,我需要让用户在一个表的tr中更新几个tds。到目前为止,我可以获取并显示相应td中的数据库值。但当我尝试更新它们时,表中所有td的最后一个tr中最后输入的值都会更新 下面是我正在尝试的查询部分。所有值都被视为数组,因为值是从多个输入框中收集的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[
$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