如何在mysql表中插入html表值

时间:2018-09-26 07:52:14

标签: php

使用以下代码,我从html表的mysql表中提取了Student IDStudent 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代码。

2 个答案:

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