如何从数据库中错误的 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是:
- site_info
- owner_info
- company_info
注意:第三个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];
我有一个带有 MYSQL 的 PHP 代码,其中它 select 使用下拉列表从数据库中使用 AJAX 并在屏幕上显示结果。 我有 3 个相互依赖的下拉列表。每个下拉菜单都有自己的 table 到 select。 table是:
- site_info
- owner_info
- company_info
注意:第三个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];