繁体   English   中英

用PHP更新2个MySQL表

[英]Update 2 MySQL table in PHP

我想用一个PHP查询更新2个MySQL表。 我有3张桌子。 一个雇员,一个公司和一个employee_company,后者具有其他两个表的ID。 这是它的样子: 模态

员工姓名和地址在一张表中。 如果更改了这些,则单击“更新”按钮,它将插入已更新的员工,而不是对其进行更新。 而且,如果我将选项值(此值是公司ID)更改为公司,则它不会更新它,而只是更新员工姓名和地址。 在fetch.php中,我将当前数据从表打印到编辑模式。

我怎么解决这个问题?

index.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>

fetch.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);  
 }  

insert.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; 

您在更新时没有得到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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM