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

Posted

技术标签:

【中文标题】php学生出勤状态使用单选按钮无法存储【英文标题】:php student attendance status using radio button unable to store 【发布时间】:2017-10-14 13:47:01 【问题描述】:

我试图存储动态填充的数据数据库。有 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"    
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]'");  
    


?>

问题是数据库没有识别它。目前我使用枚举设置测试数据类型,选项为 1、2 和 3。

【问题讨论】:

【参考方案1】:

首先,您没有对更新查询进行任何错误检查,所以将其添加进去。

其次:

$i 可能无法正确匹配,因为在您的表单中您使用$row['id'] 作为键。我认为您在引用 $test 数组中的值时需要 $id[$i] 的值而不是 $i,或者更简单地说,因为 id 是测试数组中的键:

foreach($test as $id => $test_value) 
    // You can assign the key into a variable with the foreach loop to simplify your for loops.

【讨论】:

第一个答案:添加了 mysqli_error 和增益结果Notice: Undefined offset: 1 in C:\xampp\htdocs\Form\3\try2.php on line 34 第 34 行以 if 循环开头。并非所有行都没有选中单选按钮时出现的错误。 第二个答案:效果很好。谢谢您的帮助。我可以知道为什么$i 不能引用$row['id'] 的值吗? $i 是循环中的递增计数,因此它是 0、1、2 等。$row['id'] 将成为当前行中的列 id,同时您循环通过查询结果。它们没有引用相同的东西,并且可能永远不会拥有相同的值。 注明。感谢您的帮助。

以上是关于php学生出勤状态使用单选按钮无法存储的主要内容,如果未能解决你的问题,请参考以下文章

如果使用 PHP 选择了单选按钮(当前),如何在 Mysql 数据库中为出勤值添加 +1?

单选按钮使用 PHP 解决页面刷新时的默认检查状态

在会话中存储单选按钮值 - PHP

Android单选按钮值无法存储在phpmysql中:“必填字段缺失”

Reactjs:我正在根据状态检查单选按钮,但在选中一个单选按钮时无法单击其他单选按钮

当我滚动列表视图单选按钮被自动选择或取消选择无法保持单选按钮的状态