Php 为什么多个数据不能';不要在这个代码中插入
我有一个tbl_员工表和tbl_时间表,我想为考勤插入多个数据,但当我单击提交按钮时,它只插入单个数据。但问题出在哪里,请帮我找出这个..这是插入代码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(
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
<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中没有消息,则显示“一切正常”