我想用php中的一个查询更新2个mysql表。我有三张table。一个雇员、一个公司和一个雇员\公司,其中有另外两个表的id。这就是它的样子:模态
员工姓名和地址在一个表中。如果我改变了这些,然后我点击更新按钮,它是插入更新的员工,而不是更新它。如果我从选项值(这个值是公司id)更改公司,它不会更新它,只更新员工姓名和地址。fetch.php是我将当前数据从表打印到edit模式的地方。
我怎样才能解决这个问题?
索引.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;
2条答案
按热度按时间q9rjltbz1#
请尝试此代码。
f87krz0w2#
你不会得到
employee_id
更新时。只是过去
''
在传球时打到 AJAXemployee_id
那也许会有帮助。