如何在不覆盖的情况下用 foreach 更新 table?
How to update a table with a foreach without overwriting?
所以我正在做一个大学项目,但我有一个真正开始困扰我的问题。
我试图用不同的值多次更新我的数据库,除了最后一个值将被考虑在内:他们正在覆盖自己。
我的代码:
$id_structure = $_POST['id_structure'];
foreach ($id_structure as $id2) {
$id_structure = explode(",", $id2);
updateDemandeStructure($id_demande[0], $id2, 0);
}
而我的SQL方法是这样的:
function updateDemandeStructure($id_demande, $id_structure, $principale) {
global $bd;
$stmt = $bd->prepare('UPDATE demandes_structures SET id_structure = :id_structure, principale = :principale WHERE id_demande = :id_demande');
$stmt->bindParam(ID_DEMANDE, $id_demande);
$stmt->bindParam(ID_STRUCTURE, $id_structure);
$stmt->bindParam(':principale', $principale);
$stmt->execute();
}
例如,如果我 (id_demande = 1) 选择 4 个新结构,它们的 id_structure 为:22,23,24,25,我将 table 谁长得像:
ID_DEMANDE
ID_STRUCTURE
PRINCIPALE
1
25
0
1
25
0
1
25
0
1
25
0
请问有谁知道要在我的代码中修改什么,以便我的 table 在更新后看起来像这样吗?
ID_DEMANDE
ID_STRUCTURE
PRINCIPALE
1
22
0
1
23
0
1
24
0
1
25
0
非常感谢!
感谢您的所有回答,因为我 运行 没时间了,我决定选择@ADyson 的解决方案:
而不是这样做:
foreach ($id_structure as $id2) {
$id_structure = explode(",", $id2);
updateDemandeStructure($id_demande[0], $id2, 0);
}
我这样做了:
deleteDemandeStructure($id_demande[0]);
foreach ($id_structure as $id2) {
$id_structure = explode(",", $id2);
addDemandeStructure($id_demande[0], $id2, 0);
}
如果我有时间设置一个更动态的版本,我会回来找你的!
所以我正在做一个大学项目,但我有一个真正开始困扰我的问题。 我试图用不同的值多次更新我的数据库,除了最后一个值将被考虑在内:他们正在覆盖自己。
我的代码:
$id_structure = $_POST['id_structure'];
foreach ($id_structure as $id2) {
$id_structure = explode(",", $id2);
updateDemandeStructure($id_demande[0], $id2, 0);
}
而我的SQL方法是这样的:
function updateDemandeStructure($id_demande, $id_structure, $principale) {
global $bd;
$stmt = $bd->prepare('UPDATE demandes_structures SET id_structure = :id_structure, principale = :principale WHERE id_demande = :id_demande');
$stmt->bindParam(ID_DEMANDE, $id_demande);
$stmt->bindParam(ID_STRUCTURE, $id_structure);
$stmt->bindParam(':principale', $principale);
$stmt->execute();
}
例如,如果我 (id_demande = 1) 选择 4 个新结构,它们的 id_structure 为:22,23,24,25,我将 table 谁长得像:
ID_DEMANDE | ID_STRUCTURE | PRINCIPALE |
---|---|---|
1 | 25 | 0 |
1 | 25 | 0 |
1 | 25 | 0 |
1 | 25 | 0 |
请问有谁知道要在我的代码中修改什么,以便我的 table 在更新后看起来像这样吗?
ID_DEMANDE | ID_STRUCTURE | PRINCIPALE |
---|---|---|
1 | 22 | 0 |
1 | 23 | 0 |
1 | 24 | 0 |
1 | 25 | 0 |
非常感谢!
感谢您的所有回答,因为我 运行 没时间了,我决定选择@ADyson 的解决方案:
而不是这样做:
foreach ($id_structure as $id2) {
$id_structure = explode(",", $id2);
updateDemandeStructure($id_demande[0], $id2, 0);
}
我这样做了:
deleteDemandeStructure($id_demande[0]);
foreach ($id_structure as $id2) {
$id_structure = explode(",", $id2);
addDemandeStructure($id_demande[0], $id2, 0);
}
如果我有时间设置一个更动态的版本,我会回来找你的!