0

需要一点帮助...

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

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

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

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

这是我的代码:(缩写为保存字节......)

<?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");
    }
?>

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

先感谢您!

4

1 回答 1

0

我猜你正在使用

<input name="scores[]"/>

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

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

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

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

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

于 2011-03-29T21:26:57.230 回答