[英]Update 2 MySQL table in PHP
我想用一个PHP查询更新2个MySQL表。 我有3张桌子。 一个雇员,一个公司和一个employee_company,后者具有其他两个表的ID。 这是它的样子: 模态
员工姓名和地址在一张表中。 如果更改了这些,则单击“更新”按钮,它将插入已更新的员工,而不是对其进行更新。 而且,如果我将选项值(此值是公司ID)更改为公司,则它不会更新它,而只是更新员工姓名和地址。 在fetch.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>
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);
}
$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;
您在更新时没有得到employee_id
。
只需在传递employee_id
同时将''
传递给ajax,可能会有所帮助。
$.ajax({
url:"fetch.php",
method:"POST",
data:{'employee_id':employee_id}, // Make quote to pass the parameter .
dataType:"json",
试试这个代码的朋友。
$(document).on('click', '.edit_data', function(){
var employee_id = $(this).attr("employee_id");//change id to employee_id
////your code
)};
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.