php - 更新数据库中特定 ID 的数组值

标签 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[$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,1 和 123,2,2,2,2,2

我得到 123,2,2,2,2,2 和 123,2,2,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 的更新,因为从你的问题来看它看起来没有变化,所以不需要更新。

关于php - 更新数据库中特定 ID 的数组值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28828738/

相关文章:

php - 在 php 中对数字进行排序,

mysql - 在一个事件调度程序中更新和删除

mysql - 我无法在 mysql 表中发布日期

java - 使用java更改系统时间时如何更新保存在数据库中的日期

mysql - Eloquent : "WHERE (equals statement) AND (LIKE statement)"

php - 它是安全的 SSL 数据传输吗?或不?

php - 如何在 Laravel 中测试 POST 路由

php - 如何从 csv 将批量优惠券导入 woocommerce

php - 存储过程 zend framework 2.2 tablegateway 中的多重选择问题

php - 如何处理数组中的空值