我试图存储动态填充的数据库。有3个单选按钮值需要考虑。尝试了几次,例如将结构类型从int更改为enum但没有运气。希望你们都能指出并提出解决方法。感谢。
表格样本:
<form action="try2.php" method="post" >
<?php
$con=mysqli_connect('localhost', 'root', '', 'attendance')or
die(mysqli_error());
$sql = "Select * from users where id=id";
$result = $con->query($sql);
if (!$result) {
printf("Error: %s\n", mysqli_error($con));
exit();
}
echo '<table id ="tabGroup" align="center" style="cellpadding: 10px;
cellspacing: 10px;">
<tr style="background-color:#ddd;">
<td scope="col" abbr=""> </td>
<td scope="col" abbr="id" ><strong>Attendance</strong></td>
<td scope="col" abbr="stuName" ><strong>Name</strong></td>
</tr>
';
while($row = mysqli_fetch_array($result))
{
echo '<tr>';
echo "<td scope='row' class='spec'>" . '<input name="id[]" type="textbox"
value="'.$row['id'].'" hidden>' . "</td>";
echo "<td>" . '<input type="radio" name="test['.$row['id'].']"
value="1">attend<input type="radio" name="test['.$row['id'].']"
value="2">Did not attend<input type="radio" name="test['.$row['id'].']"
value="3">Drop subject' . "</td>";
echo "<td>" . $row['id'] . "</td>";
echo "<td>" . $row['fname'] . "</td>";
echo '</tr>';
}
echo "</table>";
mysqli_close($con);
?>
<table id="tabb" align="center">
<tr>
<td id="tabb" colspan="5" align="center">
<u><a href="student.php">Cancel</a></u>
<button class="mult_submit" title="Change" value="edit"
name="submit_mult" type="submit">
<span class="nowrap"><img class="icon" width="16" height="16" alt="Change"
title="Change" src="../images/b_edit.png">Change</span>
</button></td></tr></table>
</form>
过程:
<?php
if(isset($_POST['submit_mult']))
{
$con=mysqli_connect('localhost', 'root', '', 'attendant')or
die(mysqli_error());
$id=$_POST['id'];
$test=$_POST['test'];
for($i=1;$i<count($id);$i++)
{
if($id[$i]!="" && $test[$i]!="")
{
mysqli_query($con, "UPDATE users SET test='$test[$i]' WHERE
id='$id[$i]'");
}
}
}
?>
问题是数据库无法识别它。目前,我使用enum设置测试数据类型,选项为1,2和3。
答案 0 :(得分:0)
首先,您没有对更新查询进行任何错误检查,因此请将其添加到。
其次:
$i
可能无法正确匹配,因为在您的表单中,您使用$row['id']
作为密钥。我认为在引用$id[$i]
数组中的值时,您希望$i
的值不是$test
,或者更简单,因为id是测试数组中的键:
foreach($test as $id => $test_value) {
// You can assign the key into a variable with the foreach loop to simplify your for loops.
}