Php 为什么多个数据不能';不要在这个代码中插入

Php 为什么多个数据不能';不要在这个代码中插入,php,mysql,Php,Mysql,我有一个tbl_员工表和tbl_时间表,我想为考勤插入多个数据,但当我单击提交按钮时,它只插入单个数据。但问题出在哪里,请帮我找出这个..这是插入代码 require './db_connect.php'; class Time extends Db_connect { protected $link; public function __construct() { $this->link = $this->database_connection(

我有一个tbl_员工表和tbl_时间表,我想为考勤插入多个数据,但当我单击提交按钮时,它只插入单个数据。但问题出在哪里,请帮我找出这个..这是插入代码

require './db_connect.php';
class Time extends Db_connect {

    protected $link;

    public function __construct() {
        $this->link = $this->database_connection();
    }

    public function attendance_insert($data) {
        extract($data);
        $cur_date = date('Y-m-d');

        foreach ($time_attendance as $attn_key => $attn_value) {
            if ($attn_value == 'P') {
                $SQL = "INSERT INTO tbl_time(employee_id,time_date,time_attendance)VALUES('$attn_key','$cur_date','P')";
                $atten_date=mysqli_query($this->link, $SQL);
            } else if ($attn_value == 'A') {
                $SQL = "INSERT INTO tbl_time(employee_id,time_date,time_attendance)VALUES('$attn_key','$cur_date','A')";
                $atten_date=mysqli_query($this->link, $SQL);

            }
            if ($atten_date) {
                $massage = "<div class='alert alert-success text-center'><h5>Attendance insert successfully</h5></div>";
                return $massage;
            } else {
                die('Attendance insert query problem' . mysqli_error($this->link));
            }
        }
    }
}
require./db_connect.php';
上课时间延长了Db_connect{
受保护的$link;
公共函数构造(){
$this->link=$this->database_connection();
}
公共职能部门考勤表插入($data){
提取(数据);
$cur_date=日期('Y-m-d');
foreach($attn\U key=>$attn\U值){
如果($attn_值=='P'){
$SQL=“插入tbl_时间(员工id、时间日期、时间出勤)值($attn_key’、$cur_date’、'P')”;
$atten_date=mysqli_查询($this->link,$SQL);
}else if($attn_value=='A'){
$SQL=“插入tbl_时间(员工id、时间日期、时间出勤)值($attn_key’、$cur_date’、'A')”;
$atten_date=mysqli_查询($this->link,$SQL);
}
如果($atten_日期){
$按摩=“考勤插入成功”;
返回$按摩;
}否则{
die('考勤插入查询问题'.mysqli_错误($this->link));
}
}
}
}
这是html代码

<?php

    require_once './time.php';
    $obj_time = new Time()
    $massage = '';
    if (isset($_POST['btn'])) {
        $massage = $obj_time->attendance_insert($_POST);
    }

    $employee_view = $obj_employee->employee_all_view();
    ?>
    <div class="container-fluid">
        <div class="row">
            <center>
                <a href="time.php" class="btn btn-sm btn-default glyphicon glyphicon-backward pull-left" id="show_form"></a>
                <span style="font-size:1.8em;">Attendance form</span>
            </center>
        </div>
    </div>
    <hr/>


    <?php echo $massage; ?>
    <div class="container-fluid">
        <div class="row">
            <div class="col-lg-12">

                <div class="panel panel-body panel-default">
                    <div class="well text-center" style="font-size:15px;">
                        <strong>Date :</strong>
                        <?php $current_date = date('Y-M-d');
                        echo $current_date; ?>
                    </div>
                    <form  class="form-horizontal" method="post">
                        <table class="table table-striped table-responsive text-center">
                            <tr>
                                <td><b>Serial</b></td>
                                <td><b>Name</b></td>
                                <td><b>ID</b></td>
                                <td><b>Attendance</b></td>
                            </tr>
                            <?php
                            $i = 0;
                            while ($employee_info = mysqli_fetch_assoc($employee_view)) {
                                extract($employee_info);
                                $i++;
                                ?>
                                <tr>
                                    <td><?php echo $i; ?></td>
                                    <td><?php echo $employee_first_name . ' ' . $employee_last_name; ?></td>
                                    <td><?php echo $employee_id; ?></td>
                                    <td>
                                        <input type="radio" name="time_attendance[<?php echo $employee_id; ?>]" value="P">P &nbsp;
                                        <input type="radio" name="time_attendance[<?php echo $employee_id; ?>]" value="A">A
                                    </td>
                                </tr>
                            <?php } ?>

                            <tr>
                                <td colspan="4">
                                    <input type="submit" class="btn btn-primary btn-block" name="btn" value="submit"/>
                                </td>
                            </tr>

                        </table>
                    </form>
                </div>
            </div>
        </div>
    </div>

出席表格

日期: 电视连续剧 名称 身份证件 出勤 这:

foreach($time_attendance as $attn_key => $attn_value){
    $SQL = "INSERT INTO tbl_time(employee_id,time_date,time_attendance) 
        VALUES('$attn_key','$cur_date','A')";
    $atten_date = mysqli_query($this->link, $SQL);

    if ($atten_date) {
        $massage = "<div class=''><h5>Attendance insert successfully</h5></div>";
        return $massage;
    }
}
foreach($attn\u key=>attn\u值形式的时间){
$SQL=“插入tbl\U时间(员工id、时间日期、时间出勤)
值(“$attn_key”、“$cur_date”、“A”)”;
$atten_date=mysqli_查询($this->link,$SQL);
如果($atten_日期){
$按摩=“考勤插入成功”;
返回$按摩;
}
}
return$按摩按字面意思要求打破foreach如果查询成功。。。所以是的,你只有一张唱片


将您的返回放在foreach之外。

为什么只插入一行………请给我解决方案………我的代码中是否有任何问题………链接回,因此您的代码容易受到非常恶劣的攻击如果不使用
extract()
,这是一个坏习惯,可能会彻底破坏数据。学习使用数组和循环,这样更可靠;)警告:使用
mysqli
时,您应该使用和将用户数据添加到查询中。不要使用字符串插值或串联来完成此操作,因为您已经创建了严重的错误。切勿将
$\u POST
$\u GET
数据直接放入查询,如果有人试图利用您的错误,这可能非常有害。@Md.ShapanHossain没问题;如果你想要一些改进,看看如何改进;对于成功的测试,用另一种方法进行测试:如果有错误($atten_date==FALSE),则添加一条消息,如果foreach之后的var中没有消息,则显示“一切正常”