0

テキストボックスによる繰り返し領域でphp mysqlの複数のレコードを更新するにはどうすればよいですか?

ユーザーは生徒の成績を入力する必要があります。送信ボタンをクリックすると、成績がデータベースで更新されます。

これはコードです:

<?php 
    if(isset($_POST['enter'])){
        foreach($_POST['StudentNo'] as $name => $value){
            $MidGrade = $_POST['MidGrade'];
            mysql_query("UPDATE grades SET MidGrade = '$MidGrade' WHERE StudentNo = '$value'")or die(mysql_error());
        }
    }
?>

<form id="form3" name="form3" method="post" action="array.php">
  <table width="500" height="30" border="1" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td width="71">StudentNo</td>
    <td width="500"><div align="center">Student Name </div></td>
    <td width="127">MidGrade</td>
  </tr>
  <?php do { ?>
    <tr>
      <td>
        <div align="center">
          <input name="StudentNo" type="hidden" value="<?php echo $row_studentdetails['StudentNo']; ?>" size="10" />
          <?php echo $row_studentdetails['StudentNo']; ?>
        </div>
      </td>
      <td>
        <div align="left">
          <?php echo $row_studentdetails['LastName']; ?> 
          <?php echo $row_studentdetails['FirstName']; ?> 
          <?php echo $row_studentdetails['MiddleName']; ?>
        </div>
      </td>
      <td>
        <div align="center">
          <input type="text" name="MidGrade" value="" size="10" />
        </div>
      </td>
    </tr>
  <?php } while ($row_studentdetails = mysql_fetch_assoc($studentdetails)); ?>
  </table>
  <p>&nbsp; </p>
  <p align="center">
    <input name="enter" type="submit" value="Insert record" />
  </p>
</form>
4

1 に答える 1

0

MySQL で IN () 関数を使用すると、複数の行を更新できます。次のように、カンマ区切りの値を取ります。

if(isset($_POST['enter'])){
$MidGrade = $_POST['MidGrade'];
$values = implode(",", $_POST['StudentNo'])
mysql_query("UPDATE grades SET MidGrade = '$MidGrade' WHERE StudentNo IN ($values)") or die(mysql_error());
}

私が思っていることをしているなら。

これはあなたのコードを修正しないかもしれませんが、あなたの質問に答えます.

于 2013-10-01T09:07:40.740 に答える