需要一些帮助...
我在最后一列中有一个带有文本字段形式的基本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");
}
?>
我是否在正确的轨道上?有没有更好的方法来做我正在尝试的事情?欢迎所有的建议和想法!
提前谢谢!
答案 0 :(得分:0)
我猜你正在使用
<input name="scores[]"/>
为什么不将唯一ID回显到输入名称?
<input name="score[<?php echo $unique_id ?>]" />
这意味着在循环中,$ i将是唯一的id(少一个变量,少一些HTML)。
并且在使用数据库事务时请使用mysql_real_escape_string()。我知道这是一个示例代码,但请不要忘记
除此之外,是的,你走在正确的轨道上