如何从数据库中错误的 table 修复 PHP & MYSQL 代码错误 select

how to fix PHP & MYSQL code error select from the wrong table in database

我有一个带有 MYSQL 的 PHP 代码,其中它 select 使用下拉列表从数据库中使用 AJAX 并在屏幕上显示结果。 我有 3 个相互依赖的下拉列表。每个下拉菜单都有自己的 table 到 select。 table是:

注意:第三个table只有6个值

问题是当用户 select 从第一个下拉列表第三个 select 显示第二个 table 的结果时

任何人都可以帮我解决这个问题。

search_info_location.php

 <td><select id="site_name"  name = "site_name">
                      <option value="">Select Site</option>
                 <?php


                     $query_site_name =$wpdb->get_results("select DISTINCT 
                        i.siteNAME, 
                        i.ownerID, 
                        i.companyID,
                        o.ownerNAME,
                        x.companyNAME
                       from site_info i
                       LEFT  
                       JOIN owner_info o
                       on i.ownerID = o.ownerID
                       LEFT  
                       JOIN company_info x
                       on i.companyID = x.companyID
                       ");
                      foreach($query_site_name as $row)
                      {

                          echo "<option value = '".$row ->companyID.",".$row ->ownerID.",".$row ->siteNAME."'>".$row->siteNAME."</option>";


                      } 


                 ?>

                </select></td>

<!--create  dropdown list owner names-->
                <td><select id="owner_name"  name ="owner_name">
                <option value="">Select Owner</option>
                </select></td>

<!--create  dropdown list Company names-->
                <td><select id="Company_name"  name ="Company_name">
                <option value="">Select Company</option>
                </select></td>



$sql = $wpdb->prepare("select i.siteID
     , i.siteNAME
     , i.equipmentTYPE
     , c.latitude
     , c.longitude
     , c.height 
     , o.ownerNAME
     , o.ownerCONTACT
     , x.companyNAME
     , y.subcontractorCOMPANY
     , y.subcontractorNAME
     , y.subcontractorCONTACT
  from site_info i
  LEFT  
  JOIN owner_info o
    on i.ownerID = o.ownerID
  LEFT  
  JOIN company_info x
    on i.companyID = x.companyID
  LEFT 
  JOIN subcontractor_info y
    on i.subcontractorID = y.subcontractorID
    LEFT JOIN site_coordinates2 c
    on i.siteID=c.siteID 
    where 
    i.siteNAME = %s
    AND 
    o.ownerNAME = %s
    AND 
    x.companyNAME = %s
   ",$site_name,$owner_name,$company_name);

 $query_submit =$wpdb->get_results($sql, OBJECT);

<script type="text/javascript">

// make Dropdownlist depend on each other
$(document).ready(function(){


 // depend owner name on site name  
   $('#site_name').change(function(){
     var arrayId = $(this).val().split(",");
     if(arrayId != ""){
       var ownerID = arrayId[0];    //0
       var companyID = arrayId[1];  //1

     $.ajax({
      url:"<?php echo get_stylesheet_directory_uri(); ?>/dropdown_fetch_owner.php",
       method:"POST",
       data:{ownerID:ownerID,companyID:companyID},
       dataType:"text",
       success:function(data){
                 var Response = data.split("--");
                 $('#owner_name').html(Response[2]);
                 $('#Company_name').html(Response[4]);
        }
     });


   }


  });

});

</script>

dropdown_fetch.php

<?php
 include_once($_SERVER['DOCUMENT_ROOT'].'/wordpress/wp-load.php');
 global $wpdb,$owner_name,$company_name;

   $sql =$wpdb->get_results("select ownerID, ownerNAME from owner_info where ownerID = '".$_POST['ownerID']."' ORDER BY ownerNAME");
   $owner_name = '--Owner--';

  foreach($sql as $row){


      $owner_name.= "<option value ='".$row ->ownerID."'>".$row->ownerNAME."</option>";
  }
  echo $owner_name;


   $sql =$wpdb->get_results("select companyID, companyNAME from company_info where companyID = '".$_POST['companyID']."' ORDER BY companyNAME");
   $company_name = '--Company--';
   var_dump($sql);


   foreach($sql as $row){

     $company_name.= "<option value ='".$row ->companyID."'>".$row->companyNAME."</option>";
   }
   echo $company_name;
   exit();

?>

companyID 的最大数量必须是 6 但是它显示 166 WHERE THIS IS NUMBER EXIST IN THE owner_infotable

这两个值是否颠倒了...

   var ownerID = arrayId[0];    //0
   var companyID = arrayId[1];  //1

当您以相反的方式填充它们时...

echo "<option value = '".$row ->companyID.",".$row ->ownerID.",".$row ->siteNAME."'>".$row->siteNAME."</option>";

应该是

   var companyID = arrayId[0];
   var ownerID = arrayId[1];