我有这样的代码。
<form action="submit.php" method="post">
<table>
<tr>
<th> Student </th>
<th> Subject </th>
<th> Grade </th>
</tr>
$sql = mysql_query("select * from tblsubjectgrade");
while($row = mysql_fetch_array($sql)){
echo'<tr>';
echo '<td>'.$row['name'].'</td>';
echo '<td>'.$row['subject'].'</td>';
echo '<td><input type="text" name="grade" /></td>';
echo '</tr>';
}
echo '<input type="submit" />';
</form>
我的问题是,如果我有20名学生,我将在每个学生中输入成绩,当我点击提交按钮时,每个学生的所有输入成绩必须保存到名为tblgrade的数据库中。每个输入中每个的名称必须不同。有人可以帮帮我吗?
答案 0 :(得分:1)
grade
应该是一个数组,在您的情况下,它只是一个值。
如果您的表结构有ID,请将其分配给名称,如此
while($row = mysql_fetch_array($sql)){
echo'<tr>';
echo '<td>'.$row['name'].'</td>';
echo '<td>'.$row['subject'].'</td>';
echo '<td><input type="text" name="grade['.$row['id'].']" /></td>';
echo '</tr>';
}
然后在PHP中,您将拥有一个$_POST["grade"]
数组,其中包含与实际表相关联的所有值。
您可以$_POST["grade"][row_id]
答案 1 :(得分:0)
在数据库上更新/插入它们可以使用它:
<?php
foreach($_POST["grade"] as $id => $grade) {
$query = "SELECT * FROM tblgrade WHERE id = '$id'";
$result = mysql_query($query);
if(mysql_num_rows($result) > 0)
$query = "UPDATE tblgrade SET grade = '$grade' WHERE id = '$id'";
else
$query = "INSERT INTO tblgrade SET id='$id', grade = '$grade'";
mysql_query($query);
}
?>
如果你需要保存他们的姓名&amp;如果id不存在,你必须将它们放在输入字段中。
答案 2 :(得分:0)
这样的事情:
$rowCount = $_POST['hiddenName'];
for($i=1; i<=$rowCount; $i++)
{
$_POST['name_'.$i]
}
或者您可以这样做:
HTML标记:
<table>
<tr>
<td><input type="text" name="name[]" ></td>
<td><input type="text" name="subject[]" ></td>
<td><input type="text" name="grade[]"> </td>
</tr>
</table>
PHP标记:
<?php
$rowCount = count($_POST['name']);
echo "<table>";
for($i=1; $i<=$rowCount; $i++)
{
echo "<tr>";
echo "<td>".$_POST['name'][$i -1]."</td>";
echo "<td>".$_POST['subject'][$i -1]."</td>";
echo "<td>".$_POST['grade'][$i -1]."</td>";
echo "</tr>";
}
echo "</table>";
?>