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=""> </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"
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?
Android单选按钮值无法存储在phpmysql中:“必填字段缺失”