※ ChatGPTを利用し、要約された質問です(原文:UPDATEをきちんとループできません)
UPDATEをきちんとループできません
このQ&Aのポイント
最初の1列しかデータベースが更新されません。id=1の列しか更新されません。環境はphp+mysqlです。
whileループ内でPOSTデータを取得し、UPDATE文を実行していますが、何度実行しても最初の1列しかデータベースが更新されません。id=1の列しか更新されません。
UPDATE文の実行がループ内でうまく行われていないようです。id=1の列のみが更新され、他の列は更新されません。
一つ前のページからnameを配列にして現在のページにsubmitし、
該当ページでは下記のように記述をしてUPDATEを繰り返し行いたいのですが、
最初の1列しかデータベースが更新されません。
※id=1の列しか更新されません。
※環境はphp+mysqlです。
お分かりの方がいらっしゃいましたらご教示いただけますと幸いです。
何卒宜しくお願い致します。
$i = 0;
while (1){
$goushitu = $_POST["goushitu"][$i];
$name = $_POST["name"][$i];
$rent = $_POST["rent"][$i];
$commonfee = $_POST["commonfee"][$i];
$waterrates = $_POST["waterrates"][$i];
$fuel = $_POST["fuel"][$i];
$insurance = $_POST["insurance"][$i];
$bikou = $_POST["bikou"][$i];
$id = $_POST["id"][$i];
if($id==false)
{
break;
}
// 内容の更新
$sql= "UPDATE ".$tblname." SET goushitu=?,name=?,rent=?,commonfee=?,waterrates=?,fuel=?,insurance=?,bikou=? WHERE id=?";
$stmt=$dbh->prepare($sql);
$data[] = $goushitu;
$data[] = $name;
$data[] = $rent;
$data[] = $commonfee;
$data[] = $waterrates;
$data[] = $fuel;
$data[] = $insurance;
$data[] = $bikou;
$data[] = $id;
$stmt->execute($data);
echo"【id】".$id."<br />\n";
echo"【号室】".$goushitu."<br />\n";
echo"【入居者】".$name."<br />\n";
echo"【賃 料】".$rent."円<br />\n";
echo"【共益費】".$commonfee."円<br />\n";
echo"【水 道】".$waterrates."円<br />\n";
echo"【光熱費】".$fuel."円<br />\n";
echo"【保 険】".$insurance."円<br />\n";
echo"【備 考】".$bikou."<br />\n";
echo"<br />";
$i = $i + 1;
}
※echoは下記のようにきちんと全ての内容が反映されています。
----------------------------------------------------------------------
【id】1
【号室】101
【入居者】テスト1
【賃 料】50000円
【共益費】5000円
【水 道】3000円
【光熱費】5000円
【保 険】10000円
【備 考】4月27日入金あり
【id】2
【号室】102
【入居者】テスト1
【賃 料】50000円
【共益費】5000円
【水 道】3000円
【光熱費】5000円
【保 険】10000円
【備 考】とくになし
上記のように情報を更新しました
----------------------------------------------------------------------
お礼
うまく更新することができました。 迅速なご回答に感謝致します!