php - 如何在一个php中的另一个查询sq2中使用php变量(数组,从sq1返回)?
问题描述
$sql = "SELECT
hwewo.sams_inventory_detail.location,
site.slc_info.sitename,
SUM(IF(hwewo.sams_inventory_detail.model_name like '%3%', hwewo.sams_inventory_detail.installed_qty, 0)) AS p2,
SUM(IF(hwewo.sams_inventory_detail.model_name like '%5%', hwewo.sams_inventory_detail.installed_qty, 0)) AS p3
FROM hwewo.sams_inventory_detail
INNER JOIN site.slc_info ON hwewo.sams_inventory_detail.location = site.slc_info.site_loc_code
INNER JOIN (
SELECT DISTINCT hwewo.ewox_radio_design.site_loc_code
FROM hwewo.ewox_radio_design) as dt1 ON hwewo.sams_inventory_detail.location = dt1.site_loc_code
WHERE
hwewo.sams_inventory_detail.model_name like '%pR%'
GROUP BY
hwewo.sams_inventory_detail.location
";
if ($case == '2x'){
$sql .= "
HAVING
p2 <> 0
";
}
else ($case == '3x'){
$sql .= "
HAVING
p3 <> 0
";
}
//Build up Array
$location = array();
$sitename = array();
$p2 = array();
$p3 = array();
$result = mysqli_query($ewocon, $sql);
while ($row = mysqli_fetch_assoc($result))
{
array_push($location, $row['location']);
array_push($sitename, $row['sitename']);
array_push($p2, $row['p2']);
array_push($p3, $row['p3']);
}
$sq2 = "
SELECT
hwewo.ewox_radio_design.site_loc_code
FROM
hwewo.ewox_radio_design
WHERE
hwewo.ewox_radio_design.site_loc_code = '.$location[i].'";
$site_loc_code = array();
$result1 = mysqli_query($ewocon, $sq2);
while ($row = mysqli_fetch_assoc($result1))
{
array_push($site_loc_code, $row['site_loc_code']);
}
echo "<table id = myTable>";
if($excelView == "1"){ //excel view title bar
echo "<tr>";
echo "<th>Site Loc Code</th>";
echo "<th>Site Name</th>";
echo "<th>2.0</th>";
echo "<th>3.0</th>";
echo "</tr>";
}
printf($location[0]);
printf($site_loc_code[0]);
for($i = 0 ; $i < count($location); $i++)
{
if ($excelView == "1"){ //echo database data to excel view
echo "<tr>";
echo "<td><input type='button' class='collapsible' value='$location[$i]'>
<div class='content'>
<p>$site_loc_code[$i] $location[$i]</p>
</div></td> ";
echo "<td>".$sitename[$i]."</td>";
echo "<td>".$p2[$i]."</td>";
echo "<td>".$p3[$i]."</td>";
这是我的代码的一部分,在创建新查询 (sq2) 时遇到了麻烦,并希望使用结果 ($location) 作为条件来确定从 db 到数组 sq2 的所需信息。
例如:
$location[0] = AAA
$location[1] = BBB
$location[2] = CCC
我正在尝试将其用作条件
hwewo.ewox_radio_design.site_loc_code = '.$location[i].'
所以 $site_loc_code[0] 的结果是 AAA
我需要弄清楚如何在 sq2 或其他东西中使用变量吗?
$sql = "SELECT
hwewo.sams_inventory_detail.location,
site.slc_info.sitename,
SUM(IF(hwewo.sams_inventory_detail.model_name like '%3%', hwewo.sams_inventory_detail.installed_qty, 0)) AS p2,
SUM(IF(hwewo.sams_inventory_detail.model_name like '%5%', hwewo.sams_inventory_detail.installed_qty, 0)) AS p3
FROM hwewo.sams_inventory_detail
INNER JOIN site.slc_info ON hwewo.sams_inventory_detail.location = site.slc_info.site_loc_code
INNER JOIN (
SELECT DISTINCT hwewo.ewox_radio_design.site_loc_code
FROM hwewo.ewox_radio_design) as dt1 ON hwewo.sams_inventory_detail.location = dt1.site_loc_code
WHERE
hwewo.sams_inventory_detail.model_name like '%pR%'
GROUP BY
hwewo.sams_inventory_detail.location
";
if ($case == '2x'){
$sql .= "
HAVING
p2 <> 0
";
}
else ($case == '3x'){
$sql .= "
HAVING
p3 <> 0
";
}
//Build up Array
$location = array();
$sitename = array();
$p2 = array();
$p3 = array();
$result = mysqli_query($ewocon, $sql);
while ($row = mysqli_fetch_assoc($result))
{
array_push($location, $row['location']);
array_push($sitename, $row['sitename']);
array_push($p2, $row['p2']);
array_push($p3, $row['p3']);
}
for($i = 0 ; $i < count($location); $i++)
{
$sq2 = "
SELECT
hwewo.ewox_radio_design.site_loc_code
FROM
hwewo.ewox_radio_design
WHERE
hwewo.ewox_radio_design.site_loc_code = '"$location[i]"'
";
$site_loc_code = array();
$result1 = mysqli_query($ewocon, $sq2);
while ($row = mysqli_fetch_assoc($result1))
{
array_push($site_loc_code, $row['site_loc_code']);
}
if ($excelView == "1"){ //echo database data to excel view
echo "<tr>";
//echo "<td>".$location[$i]."</td>";
echo "<td><input type='button' class='collapsible' value='$location[$i]'>
<div class='content'>
<p>$site_loc_code[$i]$location[$i]</p>
</div></td> ";
echo "<td>".$sitename[$i]."</td>";
echo "<td>".$p2[$i]."</td>";
echo "<td>".$p3[$i]."</td>";
解决方案
推荐阅读
- python - 在管理面板中创建搜索表单 - Django
- android - 没有这样的属性:betaDistributionApkFilePath 类:java.lang.String
- firebase - 如何在我的 web 应用程序中检索 firebase 托管部署 ID 或消息?
- javascript - 选择自动完成输入值转到链接
- events - 返回 isTrusted false
- c# - 根据列表的元素对同一对象进行分组
- html - 在移动设备上检查时 Div 内容拉伸
- rust - 是否可以在库编译时检查“恐慌”是否设置为“中止”?
- crystal-reports - 在 REPORT FOOTER 部分中按公式对 SUM 字段进行分组不起作用
- javascript - 受更改影响的所有单选按钮的 jQuery 事件