javascript - 在 PHP 中更新 2 MySQL 表
问题描述
我想用 PHP 中的一个查询更新 2 个 MySQL 表。我有 3 张桌子。一个员工、一个公司和一个employee_company,它具有另外两个表的ID。这是它的样子:模态
员工姓名和地址在一张表中。如果我更改这些,然后单击更新按钮,它会插入更新的员工,而不是更新它。如果我从选项值更改公司(该值是公司 ID),它并没有更新它,只是员工姓名和地址。fetch.php 是我将当前数据从表格打印到编辑模式的地方。
我怎么解决这个问题?
索引.php
<input type="button" name="edit" value="Edit" id="<?php echo $row["employee_id"]; ?>" class="btn btn-info btn-xs edit_data" />
<form method="post" id="insert_form">
<label>Enter Employee Name</label>
<input type="text" name="name" id="name" class="form-control" />
<br />
<label>Enter Employee Address</label>
<textarea name="address" id="address" class="form-control"></textarea>
<br />
<label>Company</label>
<select name="company" id="company" class="form-control">
<?php
$query2 = "SELECT * FROM company GROUP BY company_id";
$result2 = mysqli_query($connect, $query2);
while($row2= mysqli_fetch_array($result2)){
?>
<option name="option" value="<?php echo $row2['company_id'];?>"><?php echo $row2['company_name'];?></option>
<?php
}
?>
</select>
<br/>
<input type="hidden" name="employee_id" id="employee_id" />
<input type="submit" name="insert" id="insert" value="Insert" class="btn btn-success" />
</form>
<script>
$(document).on('click', '.edit_data', function(){
var employee_id = $(this).attr("id");
$.ajax({
url:"fetch.php",
method:"POST",
data:{employee_id:employee_id},
dataType:"json",
success:function(data){
$('#name').val(data.name);
$('#address').val(data.address);
$('#company').val(data.company);
$('#employee_id').val(data.id);
$('#insert').val("Update");
$('#add_data_Modal').modal('show');
}
});
});
$('#insert_form').on("submit", function(){
if($('#name').val() === "")
{
alert("Name is required");
}
else
{
$.ajax({
url:"insert.php",
method:"POST",
data:$('#insert_form').serialize(),
beforeSend:function(){
$('#insert').val("Inserting");
},
success:function(data){
$('#insert_form')[0].reset();
$('#add_data_Modal').modal('hide');
$('#employee_table').html(data);
}
});
}
});
</script>
获取.php
if(isset($_POST["employee_id"]))
{
$query = "SELECT employee.name, employee.address, company.company_id AS company
FROM employee
LEFT JOIN employee_company ON employee.employee_id = employee_company.employee_id
LEFT JOIN company ON company.company_id = employee_company.company_id
WHERE employee.employee_id = '".$_POST["employee_id"]."'";
$result = mysqli_query($connect, $query);
$row = mysqli_fetch_array($result);
echo json_encode($row);
}
插入.php
$output = '';
$message = '';
$name = mysqli_real_escape_string($connect, $_POST["name"]);
$address = mysqli_real_escape_string($connect, $_POST["address"]);
$company = mysqli_real_escape_string($connect, $_POST["company"]);
$id=$_POST["employee_id"];
if($id != '')
{
$query = "
UPDATE employee, employee_company
SET employee.name='$name',
employee.address='$address',
employee_company.employee_id='$id',
employee_company.company_id='$company'
WHERE employee.employee_id='$id'";
$message = 'Data Updated';
}
else
{
$query = "
INSERT INTO employee(name, address)
VALUES('$name', '$address');
";
$message = 'Data Inserted';
}
if(mysqli_query($connect, $query))
{
$output .= '<label class="text-success">' . $message . '</label>';
}
echo $output;
解决方案
试试这个代码朋友。
$(document).on('click', '.edit_data', function(){
var employee_id = $(this).attr("employee_id");//change id to employee_id
////your code
)};
推荐阅读
- google-cloud-vision - 在 Google CloudVision 请求 API 中添加标识符以进行跟踪
- python - Python count duplicates over lists in list
- ruby - 如何在不引发异常的情况下重试sidekiq工作?
- css - 如何覆盖反应引导颜色?
- android - 如何为音乐应用创建 Firestore 架构?
- ruby-on-rails - Heroku 部署 Ruby 2.6.1:warn_for_outdated_bundler_version
- python-3.x - 为 unittest 指定一个重复的数字
- excel - Excel数据检查+行过滤器
- ios - 更新设备旋转更改的阴影路径。阴影问题
- excel - 如何在excel中使用带有countif函数的求解器?