使用以下代码,我从html表的mysql表中提取了Student ID
和Student name
。在第三列Obtained Marks
中,我正在通过输入框获得学生成绩。现在,我想在新表testrecord中插入所有三列(学生ID,学生姓名和获得的分数)。
<html>
<body>
<?php
$connection = mysqli_connect ('localhost', 'admin', 'password', 'db');
if (!$connection) {
echo 'Not connected to server';
}
$select_db = mysqli_select_db($connection, 'db');
if (!$select_db) {
echo 'Not connected to database';
}
$SelectClass = $_POST ['selectclass'];
$sql= "SELECT * FROM students WHERE class = '$SelectClass'";
$query = mysqli_query($connection, $sql);
if (!$query) {
die ('SQL Error: ' . mysqli_error($connection));
}
mysqli_close($connection);
?>
<body>
<div class="container">
<form class="well form-horizontal" action="insert_marks.php" method="post">
<h1><strong>Please enter marks of each student for subject</strong></h1>
<form action="" method="post">
<table id = "result" class="data-table">
<caption class="title"></caption>
<thead>
<tr>
<th>Sr.No.</th>
<th>Student ID</th>
<th>Student Name</th>
<th>Marks Obtained</th>
</tr>
</thead>
<tbody>
<?php
$no = 1;
$total = 0;
while ($row = mysqli_fetch_array($query)) {
$stu = $row['stu_id'] == 0 ? '' : number_format($row['stu_id']);
echo '<tr>
<td>'.$no.'</td>
<td>'.$row['student_id'].'</td>
<input type="hidden" name="student_id" value='.$row['student_id'].'>
<td>'.$row['student_name'].'</td>
<input type="hidden" name="student_name" value='.$row['student_name'].'>
<td>
<div class="search-block clearfix">
<input name="obtmarks" placeholder="" type="number">
</div>
</td>
</tr>';
$total += $row['stu_id'];
$no++;
}
?>
</tbody>
</table>
<button type="submit" class="btn btn-warning" value="insert" align="right">Update<span class="glyphicon glyphicon-send"></span></button>
</form>
</div>
</body>
</html>
insert_marks.php:
<html>
<body>
<?php
$connection = mysqli_connect ('localhost', 'admin', 'password', 'db');
if (!$connection) {
echo 'Not connected to server';
}
$select_db = mysqli_select_db($connection, 'db');
if (!$select_db) {
echo 'Not connected to database';
}
//***********Form Submit Goes Here***********//
while
if($_POST) {
$student_id = $_POST['student_id'];
$student_name = $_POST['student_name'];
$student_marks = $_POST['obtmarks'];
$sql= "INSERT INTO testrecord (student_id,student_name,obtained_marks) VALUES ('$student_id','$student_name','$student_marks')";
if (mysqli_query($connection, $sql)) {
echo "Marks added successfully.";
echo "<br>";
echo "<br>";
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($connection);
}
}
mysqli_close($connection);
?>
</body>
</html>
表中有20个条目。在文本框中为每个学生插入标记后,以上编码仅在mysql表“ testrecord”中插入最后一条记录。您能否更正insert_marks.php代码。
答案 0 :(得分:1)
更改HTML表的正文部分:
<tbody>
<?php
$no = 1;
$total = 0;
while ($row = mysqli_fetch_array($query)) {
$stu = $row['stu_id'] == 0 ? '' : number_format($row['stu_id']);
echo '<tr>
<td>'.$no.'</td>
<td>'.$row['student_id'].'</td>
<input type="hidden" name="student_id[]" value='.$row['student_id'].'>
<td>'.$row['student_name'].'</td>
<input type="hidden" name="student_name[]" value='.$row['student_name'].'>
<td>
<div class="search-block clearfix">
<input name="obtmarks[]" placeholder="" type="number">
</div>
</td>
</tr>';
$total += $row['stu_id'];
$no++;
}
?>
</tbody>
insert_marks.php
中的部分更改:
//***********Form Submit Goes Here***********//
while
if($_POST) {
$student_id = $_POST['student_id'];
$student_name = $_POST['student_name'];
$student_marks = $_POST['obtmarks'];
for($i = 0; $i < count($student_id); $i++){
$sql= "INSERT INTO testrecord (student_id,student_name,obtained_marks) VALUES ('$student_id[$i]','$student_name[$i]','$student_marks[$i]')";
if (mysqli_query($connection, $sql)) {
echo "Marks added successfully.";
echo "<br>";
echo "<br>";
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($connection);
}
}
}
答案 1 :(得分:0)
尝试一下
<html>
<body>
<?php
$connection = mysqli_connect ('localhost', 'admin', 'password', 'db');
if (!$connection) {
echo 'Not connected to server';
}
$select_db = mysqli_select_db($connection, 'db');
if (!$select_db) {
echo 'Not connected to database';
}
$SelectClass = $_POST ['selectclass'];
$sql= "SELECT * FROM students WHERE class = '$SelectClass'";
$query = mysqli_query($connection, $sql);
if (!$query) {
die ('SQL Error: ' . mysqli_error($connection));
}
mysqli_close($connection);
?>
<body>
<div class="container">
<form class="well form-horizontal" action="insert_marks.php" method="post">
<h1><strong>Please enter marks of each student for subject</strong></h1>
<table id = "result" class="data-table">
<caption class="title"></caption>
<thead>
<tr>
<th>Sr.No.</th>
<th>Student ID</th>
<th>Student Name</th>
<th>Marks Obtained</th>
</tr>
</thead>
<tbody>
<?php
$no = 1;
$total = 0;
while ($row = mysqli_fetch_array($query)) {
$stu = $row['stu_id'] == 0 ? '' : number_format($row['stu_id']);
echo '<tr>
<td>'.$no.'</td>
<td>'.$row['student_id'].'</td>
<input type="hidden" name="student['.$no.'][student_id]" value='.$row['student_id'].'>
<td>'.$row['student_name'].'</td>
<input type="hidden" name="student['.$no.'][student_name]" value='.$row['student_name'].'>
<td>
<div class="search-block clearfix">
<input name="student['.$no.'][obtmarks]" placeholder="" type="number">
</div>
</td>
</tr>';
$total += $row['stu_id'];
$no++;
}
?>
</tbody>
</table>
<button type="submit" class="btn btn-warning" value="insert" align="right">Update<span class="glyphicon glyphicon-send"></span></button>
</form>
</div>
</body>
</html>
insert_marks.php:
<html>
<body>
<?php
$connection = mysqli_connect ('localhost', 'admin', 'password', 'db');
if (!$connection) {
echo 'Not connected to server';
}
$select_db = mysqli_select_db($connection, 'db');
if (!$select_db) {
echo 'Not connected to database';
}
//***********Form Submit Goes Here***********//
if(isset($_POST['student']) && !empty($_POST['student'])) {
$queryStr = '';
$cnt = count($_POST['student']);
foreach ($_POST['student'] as $key => $student) {
$queryStr .= "('".$student['student_id']."','".$student['student_name']."','".$student['obtmarks']."') ";
if (($key + 1) != $cnt) {
$queryStr .= " , ";
}
}
if ($queryStr != '') {
$sql= "INSERT INTO testrecord (student_id,student_name,obtained_marks) VALUES $queryStr";
if (mysqli_query($connection, $sql)) {
echo "Marks added successfully.";
echo "<br>";
echo "<br>";
}
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($connection);
}
}
mysqli_close($connection);
?>
</body>
</html>