No2.php上で、1番目のloopでupdateを実行し、2番目のloopでテーブルにechoしてみたら、echoはうまくいきましたが、dbには1列目データしかupdateされませんでした。全列をupdateするには、No2.phpをどのように記述すべきか教えてください。<( _ " _ )>
〜No1.php〜
<?php
echo "<table id='test' border='1'>";
$dataCount=count($_SESSION['key']);
for($ct=0; $ct<$dataCount; $ct++) {
echo "<tr>";
echo "<td>".$_SESSION['a'][$ct]."</td>";
echo "<td>".$_SESSION['b'][$ct]."</td>";
echo "</tr>";
}
echo "</table>";
?>
〜No2.php〜
<?php
$dataCount=count($key);
for($ct=0; $ct<$dataCount; $ct++) {
$sql = "update DbTable set A = '".$a[$ct]."', B = '".$b[$ct]."' where key = '".$key[$ct]."'";
$result = mysqli_query($link, $sql);
if(!$result){
echo "SQL文の発行に失敗しました<br>";
exit();
}
echo "<table id='test' border='1'>";
echo "更新を完了しました";
for($ct=0; $ct<$dataCount; $ct++) {
echo "<tr><td>".$a[$ct]."</td><td>".$b[$ct]."</td></tr>";
}
echo "</table>";
}
mysqli_free_result($result);
mysqli_close($link);
?>
二つ目のループが、一つ目のループの内側に入っていて、変数 $ct がカウントアップされてしまってます。
二つ目のループを、一つ目のループの外側に出してください。
No2.php にコメントを入れました。
<?php $dataCount=count($key); for($ct=0; $ct<$dataCount; $ct++) { $sql = "update DbTable set A = '".$a[$ct]."', B = '".$b[$ct]."' where key = '".$key[$ct]."'"; $result = mysqli_query($link, $sql); if(!$result){ echo "SQL文の発行に失敗しました<br>"; exit(); } echo "<table id='test' border='1'>"; echo "更新を完了しました"; // ★このふたつ目のループが、ひとつ目の内側に入ってる for($ct=0; $ct<$dataCount; $ct++) { echo "<tr><td>".$a[$ct]."</td><td>".$b[$ct]."</td></tr>"; } // ★このループを抜けたときには、$ct == $dataCount になってる echo "</table>"; } mysqli_free_result($result); mysqli_close($link); ?>
No2.php で、ふたつ目のループ(というか、<table> を出力するロジック)を、ひとつ目のループの外に出します。
<?php $dataCount=count($key); for($ct=0; $ct<$dataCount; $ct++) { $sql = "update DbTable set A = '".$a[$ct]."', B = '".$b[$ct]."' where key = '".$key[$ct]."'"; $result = mysqli_query($link, $sql); if(!$result){ echo "SQL文の発行に失敗しました<br>"; exit(); } } mysqli_free_result($result); mysqli_close($link); // ★ひとつ目のループの外に出す echo "<table id='test' border='1'>"; echo "更新を完了しました"; for($ct=0; $ct<$dataCount; $ct++) { echo "<tr><td>".$a[$ct]."</td><td>".$b[$ct]."</td></tr>"; } echo "</table>"; ?>
a-kuma3さん
2014/07/18 22:23:29ありがとうございます!教えていただいた通りに修正したら、一発で全てのデータを更新することができました♬ 結構悩んでいたので、とても助かりました!!
丁寧にわかりやすく回答してくださり有り難うございました♬<( ^ _ ^ )>