我正在尝试在选择项目的表单中增加一行。我知道做一个更新语句会按照我的要求进行,但我的问题是:如果表单中有5个或10个字段,用户可以同时选择相同的项目,如何在同一时间更新同一行保存选择同一项目的X次数?
我的表是这样的:
---materials--- (table name)
id (int)
mat_name (varchar)
quantity (int)
used (int)
existence (int)
选择项目时我需要用“1”加注的行是“已使用”
在“材料”表中,有100个项目,如:
洋葱, 梨, 西兰花, 等。
所以这个想法是当某个项目被选中时,表格中的任何项目将在“使用”行中以1为增量,并且使用简单的减法表示每个项目的数量仍然存在
我的查询看起来像这样:
$statement = "UPDATE materials
SET used = :used,
WHERE mat_name = :mat_name";
$stmt = $conn->prepare($statement);
$stmt->bindParam(':used', $_POST['used'], PDO::PARAM_INT);
$stmt->bindParam(':mat_name', $_POST['mat_name'], PDO::PARAM_STR);
$stmt->execute();
感谢您的帮助!
答案 0 :(得分:2)
您可以像这样更新表格中的行,为您提供要更改的列以及每个列的新值。请注意,您可以像used = used+1
那样引用列的先前值。
UPDATE materials
SET used=used+1,
recent_user='personsName'
WHERE mat_name = 'apple'
您可以在单个UPDATE
查询中增加多行中的数字。
UPDATE materials
SET used = used + 1
WHERE mat_name IN ('apple', 'banana', 'kumquat')
您也可以在多行中更新多个列。只需提供要更新的列的列表及其新值。例如,
UPDATE materials
SET used=used+1,
recent_user='personsName'
WHERE mat_name IN ('apple', 'banana', 'kumquat')