首页 > 解决方案 > 如何在一个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>";

标签: phpmysql

解决方案


推荐阅读