drtoclr046994545 2018-11-22 08:35
浏览 99

使用foreach循环不是我想要的结果

$warehousesArray = array('Paharganj' => '5',
                         'Sant Nagar'=>'11324',
                         'Mumbai'=>'35798',
                        'UP Border'=>'117262',
                        'Top Floor'=>'170740',
                        'Gurgaon'=>'170741');


$stockSummaryQuery1 = "   SELECT 
                p.productid,
                                p.productname,
                                scf.cf_976 AS stock_quantity,
                                w.warehousename,
                                SUM(IF(scf.cf_974=scf.cf_976 AND scf.cf_974 != 0,1,0)) AS number_of_packs
                                FROM vtiger_products AS p
                                LEFT JOIN vtiger_productcf AS pcf ON pcf.productid = p.productid
                                LEFT JOIN vtiger_stockscf AS scf ON scf.cf_922 = p.productid
                                LEFT JOIN vtiger_stocks AS s ON scf.stocksid = s.stocksid
                            JOIN vtiger_crmentity AS stockent ON stockent.crmid = s.stocksid
                                    AND stockent.deleted = 0
                    LEFT JOIN vtiger_racks AS ra ON ra.racksid = scf.cf_924
                            JOIN vtiger_rackscf AS racf ON ra.racksid = racf.racksid
                    JOIN vtiger_rooms AS ro ON ro.roomsid = racf.cf_900
                            JOIN vtiger_roomscf AS rocf ON rocf.roomsid = ro.roomsid
                    JOIN vtiger_warehouses AS w ON rocf.cf_910 = w.warehousesid
                                LEFT JOIN vtiger_vendor AS v ON v.vendorid = p.vendor_id WHERE 1 ";

if (isset($_GET['vendor_name']) && !empty($_GET['vendor_name'])) {
                $warehouseid_array = explode("_", $_GET['vendor_name']);
                $warehouseid = $warehouseid_array[0];
                $stockSummaryQuery1 .= " AND v.vendorid = ".$warehouseid;
            }

foreach ($warehousesArray as $key => $value) {

                    echo  $stockSummaryQuery1.= " AND w.warehousesid = $value";
            echo "<br><br><br><br>";


}
$stockSummaryQuery1 .= " GROUP BY p.productid ASC";

i have echo the queries and the result is

SELECT p.productid, p.productname, scf.cf_976 AS stock_quantity, w.warehousename, SUM(IF(scf.cf_974=scf.cf_976 AND scf.cf_974 != 0,1,0)) AS number_of_packs FROM vtiger_products AS p LEFT JOIN vtiger_productcf AS pcf ON pcf.productid = p.productid LEFT JOIN vtiger_stockscf AS scf ON scf.cf_922 = p.productid LEFT JOIN vtiger_stocks AS s ON scf.stocksid = s.stocksid JOIN vtiger_crmentity AS stockent ON stockent.crmid = s.stocksid AND stockent.deleted = 0 LEFT JOIN vtiger_racks AS ra ON ra.racksid = scf.cf_924 JOIN vtiger_rackscf AS racf ON ra.racksid = racf.racksid JOIN vtiger_rooms AS ro ON ro.roomsid = racf.cf_900 JOIN vtiger_roomscf AS rocf ON rocf.roomsid = ro.roomsid JOIN vtiger_warehouses AS w ON rocf.cf_910 = w.warehousesid LEFT JOIN vtiger_vendor AS v ON v.vendorid = p.vendor_id WHERE 1 AND w.warehousesid = 5

SELECT p.productid, p.productname, scf.cf_976 AS stock_quantity, w.warehousename, SUM(IF(scf.cf_974=scf.cf_976 AND scf.cf_974 != 0,1,0)) AS number_of_packs FROM vtiger_products AS p LEFT JOIN vtiger_productcf AS pcf ON pcf.productid = p.productid LEFT JOIN vtiger_stockscf AS scf ON scf.cf_922 = p.productid LEFT JOIN vtiger_stocks AS s ON scf.stocksid = s.stocksid JOIN vtiger_crmentity AS stockent ON stockent.crmid = s.stocksid AND stockent.deleted = 0 LEFT JOIN vtiger_racks AS ra ON ra.racksid = scf.cf_924 JOIN vtiger_rackscf AS racf ON ra.racksid = racf.racksid JOIN vtiger_rooms AS ro ON ro.roomsid = racf.cf_900 JOIN vtiger_roomscf AS rocf ON rocf.roomsid = ro.roomsid JOIN vtiger_warehouses AS w ON rocf.cf_910 = w.warehousesid LEFT JOIN vtiger_vendor AS v ON v.vendorid = p.vendor_id WHERE 1 AND w.warehousesid = 5 AND w.warehousesid = 11324



SELECT p.productid, p.productname, scf.cf_976 AS stock_quantity, w.warehousename, SUM(IF(scf.cf_974=scf.cf_976 AND scf.cf_974 != 0,1,0)) AS number_of_packs FROM vtiger_products AS p LEFT JOIN vtiger_productcf AS pcf ON pcf.productid = p.productid LEFT JOIN vtiger_stockscf AS scf ON scf.cf_922 = p.productid LEFT JOIN vtiger_stocks AS s ON scf.stocksid = s.stocksid JOIN vtiger_crmentity AS stockent ON stockent.crmid = s.stocksid AND stockent.deleted = 0 LEFT JOIN vtiger_racks AS ra ON ra.racksid = scf.cf_924 JOIN vtiger_rackscf AS racf ON ra.racksid = racf.racksid JOIN vtiger_rooms AS ro ON ro.roomsid = racf.cf_900 JOIN vtiger_roomscf AS rocf ON rocf.roomsid = ro.roomsid JOIN vtiger_warehouses AS w ON rocf.cf_910 = w.warehousesid LEFT JOIN vtiger_vendor AS v ON v.vendorid = p.vendor_id WHERE 1 AND w.warehousesid = 5 AND w.warehousesid = 11324 AND w.warehousesid = 35798

My desired result is the warehouseid is only written once and the values changes from 5 to 11324 and then 35798

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 关于#网络安全#的问题:求ensp的网络安全,不要步骤要完成版文件
    • ¥15 可否在不同线程中调用封装数据库操作的类
    • ¥20 使用Photon PUN2解决游戏得分同步的问题
    • ¥15 微带串馈天线阵列每个阵元宽度计算
    • ¥15 keil的map文件中Image component sizes各项意思
    • ¥30 BC260Y用MQTT向阿里云发布主题消息一直错误
    • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
    • ¥15 划分vlan后,链路不通了?
    • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据
    • ¥15 Vue3 大型图片数据拖动排序