首页 > 解决方案 > 在 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; 

标签: javascriptphpmysql

解决方案


试试这个代码朋友。

$(document).on('click', '.edit_data', function(){  
      var employee_id = $(this).attr("employee_id");//change id to employee_id 
      ////your code
)};

推荐阅读