在php中使用重复区域更新多个记录

时间:2013-10-01 09:00:22

标签: php mysql

如何通过文本框更新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>

1 个答案:

答案 0 :(得分: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());
}

如果你正在做我认为你的事。

这可能无法修复您的代码,但它会回答您的问题。