php学生出勤状态使用单选按钮无法存储

时间:2017-05-15 17:07:37

标签: php database mysqli phpmyadmin radio-button

我试图存储动态填充的数据库。有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="">&nbsp;</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>
&nbsp;<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。

1 个答案:

答案 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.
}