以上代码生成: 现在假-6ren">
gpt4 book ai didi

php - 在迭代中更新每一行 - 逻辑结构帮助

转载 作者:行者123 更新时间:2023-11-29 06:11:42 25 4
gpt4 key购买 nike

我需要帮助来解决这个问题。我试图尽可能简化事情。没有任何错误,这只是我无法弄清楚的访问问题。

想象一下:

<?php
for($i=0;$i<3;$i++){
?>
Member:
<input type="text" name="<?php echo trim("member_".$i);?>" />
<br/>
<?php
} ?>

以上代码生成:

<input name="member_1">
<input name="member_2">
<input name="member_3">

现在假设,表中的数据

org_ID (Foreign Key)    member
A 1
A 2
A 3

现在来更新功能:

public function updateTo($tableName, $org_D,$member) {
try {
$stm = "update " . $tableName . " SET member = :member WHERE org_D= :org_D";
$eksekutor = $this->koneksi->prepare($stm);
$eksekutor->bindValue(":org_D", $org_D, PDO::PARAM_STR);
$eksekutor->bindValue(":member ", $member, PDO::PARAM_STR);
$eksekutor->execute();
$done = true;
} catch (PDOException $e) {
$done = false;
}
return $done;
}

最后是更新操作:

如果我这样做(这是错误的,因为它会不断更新每次迭代的所有行):

for($i=0;$i<3;$i++) {
$member = $_POST["member_$i"];
$update = $kad->updateTo("table_name", $org_D, $member);
}

我需要帮助,我无法弄清楚如何实现此更新操作:

$_POST["member_1"]; ------ UPDATE TO-------> row "member" contains 1
$_POST["member_2"]; ------ UPDATE TO-------> row "member" contains 2
$_POST["member_3"]; ------ UPDATE TO-------> row "member" contains 3

因为在更新操作中我必须决定每个 WHERE= 的值

最佳答案

目前,您在每次迭代中向您的数据库发送相同的 UPDATE 语句。如果您想在每次迭代中更新单个成员,则必须将其添加到 WHERE 子句中。

也许你有更多的东西可以引用一个成员,而不是你的例子中给出的。否则,您必须将之前的成员值添加到您的 where 子句中。

public function updateTo($tableName, $org_D, $prevMember, $newMember) {
...
$stm = "update " . $tableName . " SET member= :newMember WHERE org_D=:org_D AND member = :prevMember";
$eksekutor = $this->koneksi->prepare($stm);
$eksekutor->bindValue(":org_D", $org_D, PDO::PARAM_STR);
$eksekutor->bindValue(":newMember", $newMember, PDO::PARAM_STR);
$eksekutor->bindValue(":prevMember", $prevMember, PDO::PARAM_STR);
...
}

关于php - 在迭代中更新每一行 - 逻辑结构帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37929479/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com