通过PHP Web表格表更新mySQL表中的多条记录?

时间:2011-03-29 21:20:29

标签: php mysql insert-update

需要一些帮助...

我在最后一列中有一个带有文本字段形式的基本html表,并且在Web表的每一行上都有一个隐藏字段。此表中的数据是从数据库中的表中提取的。

我希望我的用户能够使用此网页表单(页面)更新数据库中的一个字段(分数)。

每行上都有一个隐藏的Web表单组件,其中包含数据库中记录的唯一ID,用于网页表中的每一行。

我试图创建代码来更新Web表单上的整个条目列表,即使用户没有更新该特定字段。 (得分字段的值在创建表时填充到Web表单中。因此,如果您没有更新任何分数,但点击提交按钮,它将使用相同的值更新数据库表。)

这是我的代码:(缩写为save bytes ...)

<?php

//Do all the database connection stuff up front


if (isset($_POST[‘score’]))
{
     $student_id = $_POST[‘student_id’];
      $score = $_POST['score'];
      $n        = count($score);
       $i        = 0;

echo "You have updated these student scores on this assignment. \r\n" .
"<ol>";
   while ($i < $n)
{
echo "<hr><P>{$score[$i]} \r\n";
echo "<hr><P>{$student_id[$i]} \r\n";

$qry = "UPDATE assignments SET score = ".$score[$i]." WHERE student_id = " .$student_id[$i]. '"';
$result=@mysql_query($qry);

$i++;
   }
}
if($result) {
        header("location: member-index.php");
        exit();
    }else {
        die("Query failed");
    }
?>

我是否在正确的轨道上?有没有更好的方法来做我正在尝试的事情?欢迎所有的建议和想法!

提前谢谢!

1 个答案:

答案 0 :(得分:0)

我猜你正在使用

<input name="scores[]"/>

为什么不将唯一ID回显到输入名称?

<input name="score[<?php echo $unique_id ?>]" />

这意味着在循环中,$ i将是唯一的id(少一个变量,少一些HTML)。

并且在使用数据库事务时请使用mysql_real_escape_string()。我知道这是一个示例代码,但请不要忘记

除此之外,是的,你走在正确的轨道上