在这个项目中,我正在为老师制作一个考勤用户界面。在这里,教师可以更新学生的标记,这些标记将直接更新到MYSQL数据库中。下面显示了我用来回显数据库中学生列表的代码。在这里,我使用了数组,即name =" gradeEdit []"在输入部分。
teacherGrades.php
<?php
$con=mysqli_connect("#", "#", "", "#");
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$result = mysqli_query ($con,"SELECT ");
echo ' <form method="POST" action="teacherGrades.php">
<table class="tableEchoPupil" border="1">
<tr>
<th>Name</th>
<th>Edit</th>
</tr>';
while($row = mysqli_fetch_array($result))
{
echo "<tr>
<td>" . $row['name'] . "</td>
<td> <input type='text' name='gradeEdit[]' /> </td>
</tr>"; }
echo "<input class='gradeSubmit' type='submit' name='btnSubmit' value='Submit'>";
echo "</table>";
echo "</form> <br/>";
?>
下面显示了存储在本页开头的代码[teacherGrades.php ]。当教师输入新成绩并单击上一代码中的提交按钮时,必须在数据库中更新成绩。但问题是,我无法正确更新它。我认为我的代码背后有一些问题,请你检查并帮助我。如果还有其他问题,我准备回答。
提前谢谢你。
<?php
$con=mysqli_connect("#","#","","#");
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
if ($_POST['btnSubmit']){
$gradeEdit = $_POST['gradeEdit'];
foreach ($gradeEdit as $key => $value) {
$grades = implode(',', $gradeEdit);
$query = "UPDATE classroom_student_teacher SET marks = '$grades'
WHERE teacher_id = $userid AND classroom_id = $id";
$close = mysqli_query($con, $query);
}
}
?>
答案 0 :(得分:1)
您应该在输入框中传递学生姓名或ID。这意味着row-1_key =&gt;行1_value。
<input type='text' name='gradeEdit[".$row['student_id']."]' />
以上行是用于表单输入。 告诉我您是否正在为教师或所有学生更新数据。说明我的表结构。
如果要保存数组值。使用以下行
foreach ($gradeEdit as $key => $value) {
//use $key as row id and marks will be your $value. So change your query like this below.
$row_id=$key+1;
$query = "UPDATE classroom_student_teacher SET marks = '$value'
WHERE student_id=$row_id AND teacher_id = $userid AND classroom_id = $id";
AND teacher_id = $ userid AND classroom_id = $ id 您使用此条件的原因
$close = mysqli_query($con, $query);
}
答案 1 :(得分:0)
2种方法,
json_encode是可能的,但它可能以不同的方式解码。
对我来说听起来更好的一个选项是使用序列化和反序列化,这将返回对象,就像你放置它们一样。
e.g。
serialize($var);
unserialize($var);
它只会生成数组或对象的序列化字符串。 在你的情况下,JSON也可以。
答案 2 :(得分:0)
要在您的数据库中存储数据,您可以使用php自己的函数。
$conn=mysqli_connect("example.com","testuser","passwort","your_db");
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$sql = "INSERT INTO Your_Table (First, Second, Array)";
$sql .= VALUES ('First', 'Second',Your_Array)";
mysqli_query($conn, $sql);
mysqli_close($con);
要将数组放入数据库,您可以使用php函数implode。
$array = array('First', 'Second', 'Last');
$comma_separated = implode(",", $array);
你会给你一个像这样的字符串 - 第一,第二,最后